我有一个@ Html.TextBox和一个@ Html.CheckBox,无论在@Html.TextBox中输入什么,我点击windows身份验证复选框的那一刻我希望我的@ Html.TextBox变为EMPTY和DISABLED
@using (Html.BeginForm())
{
<div id="emailtext">@Html.TextBoxFor(m=>m.Email)</div>
<div id="chk">@Html.CheckBox("CheckWindowsAuth") @Html.Label("Use windows authntication")</div>
}
我的jquery不是帮助
<script src="my jquery path"></script>
<script>
$(document).ready(function(){
$("#chk").click(function(){
$("#emailtext").val("");
$("#emailtext").attr("disabled", "disabled");
});
});
</script>
请帮我知道我哪里错了... 感谢
答案 0 :(得分:0)
您需要将.val
和.attr
应用于输入,而不是包含div。这应该有效:
$(document).ready(function(){
$("#chk").click(function(){
$("#Email").val("");
$("#Email").attr("disabled", "disabled");
});
});
但是,Razor的辅助方法有时很时髦,因此您可能需要右键单击并检查浏览器中输入的元素,并确保id为Email
。
答案 1 :(得分:0)
根据您的代码,#chk
是div,同样#emailtext
也是div。
如果元素在div内部,则需要更改选择器
$(document).ready(function(){
$("#chk input[type=checkbox]").click(function(){
$("#emailtext input").val("");
$("#emailtext input").attr("disabled", "disabled");
});
});
您可能还需要检查复选框的值。是否在调整输入框之前检查它。
$(document).ready(function(){
$("#chk input[type=checkbox]").change(function(){
if($(this).is(":checked")) {
$("#emailtext input").val("");
$("#emailtext input").attr("disabled", "disabled");
} else {
$("#emailtext input").removeAttr("disabled");
}
});
});
答案 2 :(得分:0)
我认为$ .click让你失望。
试试这个
$(document).ready(function(){
$("#chk").change(function(){
if(!$(this).is(':checked')){
$("#emailtext input").removeAttr("disabled");
}
else{
$("#emailtext input").val("");
$("#emailtext input").attr("disabled", "disabled");
}
});
});
https://jsfiddle.net/0hwsLs4y/
编辑,上面的内容是正确的,ids是在容器上,而不是输入
答案 3 :(得分:0)