单选按钮上的jQuery单击事件不会被触发

时间:2013-06-19 08:18:58

标签: javascript jquery

我已经获得以下代码来触发某些单选按钮上的点击事件!但它并没有被解雇!谁能帮我这个!

代码:

$("#inline_content input[name='type']").click(function(){
    if($('input:radio[name=type]:checked').val() == "walk_in"){
        $('#select-table > .roomNumber').attr('enabled',false);
    }
}); 

RADIO BUTTONS

<form class="type">
<input type="radio" name="type" checked="checked" value="guest">In House</input>
<input type="radio" name="type" value="walk_in">Walk In</input>
</form>.

更新

尝试了onChange()但没有工作。

6 个答案:

答案 0 :(得分:32)

它开火了。查看演示http://jsfiddle.net/yeyene/kbAk3/

$("#inline_content input[name='type']").click(function(){
    alert('You clicked radio!');
    if($('input:radio[name=type]:checked').val() == "walk_in"){
        alert($('input:radio[name=type]:checked').val());
        //$('#select-table > .roomNumber').attr('enabled',false);
    }
});

答案 1 :(得分:13)

此代码中存在一些错误:

  1. 您使用的是<input>错误的方式。如果您想使其背后的文字可点击,则应使用<label>
  2. 设置enabled属性,该属性不存在。请改用disabled
  3. 如果它是属性,则其值不应为false,使用disabled="disabled"或仅disabled没有值。
  4. 如果检查某人点击会更改其值的表单事件(例如复选框和单选按钮),请改用.change()
  5. 我不确定你的代码应该做什么。我的猜测是,一旦有人选择“Walk in”(并且可能在取消选择时重新启用),您想要使用类roomNumber禁用输入字段。如果是这样,请尝试以下代码:

    HTML:

    <form class="type">
        <p>
            <input type="radio" name="type" checked="checked" id="guest" value="guest" />
            <label for="guest">In House</label>
        </p>
        <p>
            <input type="radio" name="type" id="walk_in" value="walk_in" />
            <label for="walk_in">Walk in</label>
        </p>
        <p>
            <input type="text" name="roomnumber" class="roomNumber" value="12345" />
        </p>
    </form>
    

    使用Javascript:

    $("form input:radio").change(function () {
        if ($(this).val() == "walk_in") {
            // Disable your roomnumber element here
            $('.roomNumber').attr('disabled', 'disabled');
        } else {
            // Re-enable here I guess
            $('.roomNumber').removeAttr('disabled');
        }
    });
    

    我在这里创建了一个小提琴:http://jsfiddle.net/k28xd/1/

答案 2 :(得分:1)

就我个人而言,类似问题的最佳解决方案是:

<强> HTML

<input type="radio" name="selectAll" value="true" />
<input type="radio" name="selectAll" value="false" />

<强> JQuery的

var $selectAll = $( "input:radio[name=selectAll]" );
    $selectAll.on( "change", function() {
         console.log( "selectAll: " + $(this).val() );
         // or
         alert( "selectAll: " + $(this).val() );
    });

*活动&#34;点击&#34;可以代替&#34;改变&#34;同样。

希望这有帮助!

答案 3 :(得分:0)

另一种方式

$("#inline_content input[name='type']").change(function () {
    if ($(this).val() == "walk_in" && $(this).is(":checked")) {
        $('#select-table > .roomNumber').attr('enabled', false);
    }
});

演示 - http://jsfiddle.net/cB6xV/

答案 4 :(得分:0)

好像你#inline_content不存在!删除jQuery-Selector或检查父元素,也许你有一个拼写错误或忘记添加id。

(让你成为一个jsfiddle,在添加父<div id="inline_content">之后起作用:http://jsfiddle.net/J5HdN/

答案 5 :(得分:0)

将ur js代码放在html表单下或使用$(document).ready(function(){})并尝试此操作。

$('#inline_content input[type="radio"]').click(function(){
                if($(this).val() == "walk_in"){
                    alert('ok');
                }
});