2015-04-20 53 views
2

我有@ Html.TextBox和@ Html.CheckBox,无论在@ Html.TextBox中输入什么内容,当我点击复选框进行Windows身份验证时我希望我的@ Html.TextBox变空和残疾人无法禁用复选框上的文本框

@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未helpinng

<script src="my jquery path"></script> 
<script> 
$(document).ready(function(){ 
    $("#chk").click(function(){ 
     $("#emailtext").val(""); 
     $("#emailtext").attr("disabled", "disabled"); 
    }); 
}); 
</script> 

请帮助我知道我要去哪里错了... 感谢

+2

不应该使用$(“#emailtext”)作为文本框吗?它肯定应该是'$(“#emailtext input”)'。您正在引用div,而不是文本框。 – Frayt

回答

0

您需要APPL y .val.attr输入,而不是包含div。这应该工作:

$(document).ready(function(){ 
    $("#chk").click(function(){ 
     $("#Email").val(""); 
     $("#Email").attr("disabled", "disabled"); 
    }); 
}); 

然而,Razor的辅助方法有时是时髦的,所以你可能要点击右键,在浏览器中输入检查元素,确保该ID是Email

+0

谢谢詹姆斯,那工作太... –

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"); 
      } 
     }); 
    }); 
+1

thnx很多人...那工作... –

+0

不客气:) – mohamedrias

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/


编辑,这上面是正确的,该ID是在容器上,而不是投入

0

您可能需要使用propprop代替的attrattr as使用attr获取或检索值已被弃用某些el自从jQuery 1.6以来。

从jQuery 1.6开始,对于尚未设置的属性 ,.attr()方法返回undefined。要检索和更改DOM属性(如 )表单元素的选中状态,选中状态或禁用状态,请使用 .prop()方法。