在服务器端验证后保持显示隐藏文本框
本文关键字:显示 隐藏 文本 服务器端 验证 | 更新日期: 2023-09-27 18:07:30
在我创建的表单上有一个小问题。首先,向用户展示单选按钮。有3个单选按钮选项Email, MobileNo
和AlternativePhoneNo
,但是确认MobileNo
和确认AlernativePhoneNo
文本框只会根据用户选择的单选按钮出现。
我遇到的问题是,一旦用户单击MobileNo,然后出现确认MobileNo文本框,当您在确认MobileNo文本框中没有输入任何内容并提交表单时,它会进行正确的服务器端验证,但是确认MobileNo文本框再次隐藏,当您再次单击单选按钮MobileNo时,确认文本框将出现验证它应该如何。
我想我需要做JQuery
或JavaScript
功能,以始终保持隐藏的文本框可见,一旦用户检查上面的东西…??
不知道怎么做,这是我的HTML。
<div id="ConfirmMobTelNo" class="confirmmobtelno col-md-6" style="display:none">
<!-- <i class="fa fa-phone-square" aria-hidden="true"></i>-->
@Html.LabelFor(model => model.ConfirmMobileTelephoneNo, "Confirm your mobile telephone no", new { @style = "", @class = "", id = "" })
@Html.TextBoxFor(model => model.ConfirmMobileTelephoneNo, new { placeholder = "re-enter your mobile no here.", @style = "", @class = "form-control", id = "confirmmobtelno" })
@Html.ValidationMessageFor(model => model.ConfirmMobileTelephoneNo)
</div>
这是我的Javascript
<script>
$('.communicationCB input[name=CCommmunication]').click(function () { //.communication class passed input name == model public communication
if ($(this).val() == "TelephoneNo") { //if value TelephoneNo selected in model
$('.confirmmobtelno').show(); //show this text box
} else {
$('.confirmmobtelno').hide(); //hide textbox
}
if ($(this).val() == "TelephoneNoAlternative") { //if value == to TelephoneNoalternative
$('.confirmalttelno').show(); //show confirm alt tel no text box
} else {
$('.confirmalttelno').hide(); //else hide it
}
});
如果我说对了,您希望重新加载页面,并根据所选的单选输入显示相关的隐藏内容,对吗?
如果是,您可以强制单击,以显示相关的隐藏在您的无线电输入。试试这个:
$(function() {
$('.communicationCB input[name=CCommmunication]:checked').click();
});
上面的代码片段在选中的(:checked
)单选框上调用click
事件。
我必须在我的代码上面添加一个页面加载,比如下面的代码,所以这是第一次加载。
var checkedVal = $('.communicationCB input[name=CCommmunication]:checked').val(); //Added a variable to check the value
if (checkedVal == "TelephoneNo") { //if checked valuie
$('.confirmmobtelno').show(); //show this text box
} else {
$('.confirmmobtelno').hide(); //hide textbox
};
if (checkedVal == "TelephoneNoAlternative") { //if checked valuie == to TelephoneNoalternative
$('.confirmalttelno').show(); //show confirm alt tel no text box
} else {
$('.confirmalttelno').hide(); //else hide it
};