При использовании Google Chrome функция работает нормально, то есть все сообщения об ошибках произносятся при нажатии кнопки, как я дал, но при использовании Internet Explorer или Firefox он начинает проверку с обратной стороны и тоже по одному, но работает хорошо с Google Chrome.
Я создал два образца текстовых полей, получил необходимый полевой валидатор и назначил функцию для сообщения об ошибках.
<script src="https://code.responsivevoice.org/responsivevoice.js"></script>
<script>
function perform() {
if (document.getElementById('user').style.display == "inline") {
responsiveVoice.speak("" + document.getElementById('user').innerHTML + "");
}
if (document.getElementById('pass').style.display == "inline") {
responsiveVoice.speak("" + document.getElementById('pass').innerHTML + "");
}
}
</script>
<body>
<form id="form1" runat="server">
<table class="auto-style1">
<tr>
<td class="auto-style2">Username</td>
<td>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="user" runat="server" ControlToValidate="TextBox1" ErrorMessage="Enter Username" Display="Dynamic" ForeColor="#FF3300"></asp:RequiredFieldValidator>
</td>
</tr>
<tr>
<td class="auto-style2">Password</td>
<td>
<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="pass" runat="server" ControlToValidate="TextBox2" ErrorMessage="enter password" Display="Dynamic" ForeColor="#FF3300"></asp:RequiredFieldValidator>
</td>
</tr>
<tr>
<td class="auto-style2"> </td>
<td>
<asp:Button ID="Button1" runat="server" Text="Submit" OnClientClick="perform();"/>
</td>
</tr>
Он должен нормально работать с Internet Explorer, то есть все сообщения об ошибках должны произноситься одновременно или, по крайней мере, проверяться сверху вниз.