我有两个单选按钮
<div class="col-md-2">
@Html.RadioButtonFor(model => model.ReceiveCopyOrders, "true") Yes
</div>
<div class="col-md-3">
@Html.RadioButtonFor(model => model.ReceiveCopyOrders, "false", new { @id = "mailForOrder_no" }) No
</div>
和一个文本框
<div class="col-md-10">
@Html.TextBoxFor(m => m.OrderEmail, new { @class = "form-control",@id="
mailForOrder" })
</div>
如果选中了收音机NO,我希望禁用文本框。
我尝试了下面的脚本
<script>
$(document.getElementById('mailForOrder_no')).checked(function () {
document.getElementById('mailForOrder').disabled = true;
});
但是没有禁用该复选框。
我做错了什么?
答案 0 :(得分:1)
你是不是想做这样的事。
<input type="radio" name = "rad" class="rad" value="Yes"/>Yes
<input type="radio" name = "rad" class="rad" value="No"/>No
<input type="text" id="txt" />
<input type="button" onclick="disableTextBox()" />
JavaScript代码:
function disableTextBox() {
$(".rad").each(function() {
if (this.checked && this.value == "No") {
$("#txt").attr('disabled','disabled');
}
});
}
答案 1 :(得分:0)
使用jQuery我们可以这样做:
function(){ if($('#mailForOrder_no:checked')){$("mailForOrder").attr()"disabled","disabled"} }
答案 2 :(得分:0)
因为你没有使用jQuery这样的东西:
<强> Sample fiddle 强>
// Get radios
var rad = document.getElementsByName('mailForOrder_no');
// Disable / Enable element based on value
function disable_by_radio(w, id) {
document.getElementById(id).disabled =
w.checked && w.value === "No";
}
// Update by event
rad[0].onchange = function (e) { disable_by_radio(this, 'mailForOrder'); };
rad[1].onchange = function (e) { disable_by_radio(this, 'mailForOrder'); };
// Initial update
disable_by_radio(rad[1], 'mailForOrder');
使用此HTML:
<input type="text" id="mailForOrder" />
<input name="mailForOrder_no" type="radio" value="Yes" />Yes
<input name="mailForOrder_no" type="radio" value="No" checked />No
由于你没有使用jQuery,$()
部分,以及你的代码不起作用的原因,因此它无法解释,因为它不是纯Javascript的一部分。
简而言之,这是一个疯狂的猜测:
单选按钮没有名为checked()
的函数,但没有属性。如果代码的$()
部分仅传递了对象,则尝试调用属性将导致错误。