javascript-如何动态显示文本框并根据在ASP.NET MVC 5应用程序中选择的单选框使其为必需
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript-如何动态显示文本框并根据在ASP.NET MVC 5应用程序中选择的单选框使其为必需,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4267字,纯文字阅读大概需要7分钟。
内容图文
![javascript-如何动态显示文本框并根据在ASP.NET MVC 5应用程序中选择的单选框使其为必需](/upload/InfoBanner/zyjiaocheng/685/ccf1f9169be844f18bdbf67705a1e000.jpg)
因此,我正在学习Jquery的基础知识.我有两个单选框和一个文本框,如果选择了“第一个”单选框,则隐藏该文本框;如果选择了“第二个”单选框,则我想显示一个文本框,并将其同时设置为“必填字段”.我尝试了一些解决方案,但我认为它过于复杂.
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="col-md-10">
<input class="js-radio" id="SelectedRoleType" name="SelectedRoleType" type="radio" value="JobSeeker"> Job Seeker
<input class="js-radio" id="SelectedRoleType" name="SelectedRoleType" type="radio" value="Referrer"> Referrar
</div>
<div class="col-md-10">
<input class="form-control" id="Email" name="Email" type="text" value="">
</div>
我遵循的实现我的解决方案的步骤.
>在文本框中添加了一个类“ MyTextBoxClass”-[不确定是否必要]
>添加了“无显示”
>向单选框添加了一个类“ MyRadioClass”-[不确定是否有必要]
< div>
< input class =“ MyRadioClass” id =“ SelectedRoleType” name =“ SelectedRoleType” type =“ radio” value =“ JobSeeker”>求职者
< input class =“ MyRadioClass” id =“ SelectedRoleType” name =“ SelectedRoleType” type =“ radio” value =“ Referrer”>推荐人
< / div>
>在该MyRadioClass上添加了“ CHANGE”事件
>在更改时检查单选框的值,
>如果是第二个,则删除样式属性,以便将NONE取出并添加“必需属性”
>如果是第一个复选框,则添加显示为无
$('.MyRadioClass').on('change', function () {
if($('input[name=SelectedRoleType]:checked').val() == "Referrer")
{
$('.MyTextBoxClass').removeAttr("style");
$('.MyTextBoxClass #Email').attr('required','required');
}
else {
$('.MyTextBoxClass').css('display', 'none');
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="col-md-10 MyRadioClass">
<input class="js-radio" id="SelectedRoleType" name="SelectedRoleType" type="radio" value="JobSeeker"> Job Seeker
<input class="js-radio" id="SelectedRoleType" name="SelectedRoleType" type="radio" value="Referrer"> Referrar
</div>
<div class="col-md-10 MyTextBoxClass" style="display:none;">
<input class="form-control" id="Email" name="Email" type="text" value="">
</div>
问题1.当我提交表单时,“ Required”属性未附加.我能够提交表单,而无需在文本框中输入任何值.
问题2.是否有更圆滑的方式来完成我想实现的目标?
我的实际代码:
<h2>@ViewBag.Title.</h2>
@using (Html.BeginForm("Register", "Account", FormMethod.Post, new { @class = "form-horizontal", role = "form" }))
{
<div class="form-group MyRadioClass">
<div class="col-md-10">
@Html.RadioButtonFor(m => m.SelectedRoleType, "JobSeeker", new { @class="js-radio"}) Job Seeker
@Html.RadioButtonFor(m => m.SelectedRoleType,"Referrer", new { @class="js-radio"}) Referrar
</div>
</div>
<div class="form-group MyTextBoxClass" style = "display:none" ">
@Html.LabelFor(m => m.Email, new { @class = "col-md-2" })
<div class="col-md-10">
@Html.TextBoxFor(m => m.Email, new { @class = "form-control" })
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type = "submit" class="btn btn-default" value="Register" />
</div>
</div>
}
<button class="btn btn-info">
<i class="fa fa-lg fa-fw fa-facebook"></i>
facebook
</button>
@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
}
<script>
$('.MyRadioClass').on('change', function () {
if($('input[name=SelectedRoleType]:checked').val() == "Referrer")
{
$('.MyTextBoxClass').show();
$('.MyTextBoxClass input').attr('required', true);
}
else {
$('.MyTextBoxClass').hide();
}
});
</script>
解决方法:
您的问题是您使用jquery.validate.js和jquery.validate.unobtrusive.js库进行客户端验证.它们与HTML-5验证(必需的属性)不兼容,并且jquery.validate.js修改了< form>标记以添加novalidate属性,因此您的必需属性将被忽略.
为了同时获得客户端和服务器端验证,您需要应用条件验证属性.在SO上有很多这样的示例,或者您可以使用foolproof [RequiredIf]属性.另外,如果您想学习写自己的书,我建议阅读The Complete Guide To Validation In ASP.NET MVC 3 – Part 2.
使用万无一失的属性,您的模型属性将是
[RequiredIf("SelectedRoleType", "Referrer", ErrorMessage = "...")]
public string Email { get; set; }
如果您选择第二个单选按钮(对于“ Referrer”),并将“电子邮件”控件留空,则您的提交操作将被取消,并且错误消息将显示在视图中.
然后,要显示/隐藏与email属性关联的元素,您的脚本应为
$('.MyRadioClass .js-radio').on('change', function () {
if($('input[name=SelectedRoleType]:checked').val() == "Referrer") {
$('.MyTextBoxClass').show();
}
else {
$('.MyTextBoxClass').hide();
}
});
内容总结
以上是互联网集市为您收集整理的javascript-如何动态显示文本框并根据在ASP.NET MVC 5应用程序中选择的单选框使其为必需全部内容,希望文章能够帮你解决javascript-如何动态显示文本框并根据在ASP.NET MVC 5应用程序中选择的单选框使其为必需所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。