用于在选择单选按钮时禁用文本框的脚本

时间:2014-03-11 07:39:10

标签: javascript radio-button html-helper

我有两个单选按钮

 <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;

        });

但是没有禁用该复选框。

我做错了什么?

3 个答案:

答案 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()的函数,但没有属性。如果代码的$()部分仅传递了对象,则尝试调用属性将导致错误。