Хорошо. Вот фон.
У меня есть приложение, которое должно принимать чеки. У пользователя есть 2 радио кнопки. Первая радиокнопка имеет связанный с ней выпадающий список, который содержит маскированные номера их ранее использованных чековых счетов.
Второй переключатель имеет три текстовых поля и изображение чека, связанного с ним.
Когда пользователь заходит на эту страницу, три текстовых поля и контрольное изображение, связанное со вторым переключателем, отключаются. Затем, если пользователь решает, что он / она хочет использовать новую контрольную учетную запись, он может щелкнуть по второй радиокнопке, и это запускает Javascript, который включает три флажка и изображение чека, связанного с этой второй радиокнопкой. Если щелкнуть первую радиокнопку, она снова отключит текстовые поля и скроет контрольное изображение, связанное со второй радиокнопкой.
Проблема возникает, когда я выполняю проверку на стороне сервера. После проверки всех текстовых полей, если возникает проблема, я просто выпадаю из нижней части кода, страница отправляется обратно, а надписи над ошибочными текстовыми полями показывают сообщение об ошибке.
Одно предупреждение: Javascript, который должен срабатывать при событии OnClick для первых переключателей, а текстовые поля для второго переключателя отключены. Пользователь может нажать на второй переключатель, и поля включатся, но это очень неуклюже.
Вот код включения, где я внедряю Javascript:
Private Sub JavascriptInject()
Dim sEnableControls As String
Dim sDisableControls As String
'write out the enable controls script
sEnableControls = "<script type=""text/javascript"">function EnableControls(){ "
sEnableControls = sEnableControls & "document.getElementById('txtRoutingNumMult').disabled=false;"
sEnableControls = sEnableControls & "document.getElementById('txtECheckNumMult').disabled=false;"
sEnableControls = sEnableControls & "document.getElementById('txtECHeckNameMult').disabled=false;"
sEnableControls = sEnableControls & "document.getElementById('imgCheckMult').style.display='';"
sEnableControls = sEnableControls & " }</script>"
'write out the disable controls script
sDisableControls = "<script type=""text/javascript"">function DisableControls(){ "
sDisableControls = sDisableControls & "document.getElementById('txtRoutingNumMult').disabled=true;"
sDisableControls = sDisableControls & "document.getElementById('txtECheckNumMult').disabled=true;"
sDisableControls = sDisableControls & "document.getElementById('txtECHeckNameMult').disabled=true;"
sDisableControls = sDisableControls & "document.getElementById('imgCheckMult').style.display='none';"
sDisableControls = sDisableControls & " }</script>"
'inject it
ClientScript.RegisterStartupScript(Me.GetType, "EnableControls", sEnableControls)
ClientScript.RegisterStartupScript(Me.GetType, "DisableControls", sDisableControls)
rbECheckNew.Attributes.Add("OnClick", "EnableControls()")
rbECheckPrev.Attributes.Add("OnClick", "DisableControls()")
End Sub
Как повторно включить текстовые поля при неудачной проверке обратной передачи?