为什么这个选项选择器不起作用

时间:2011-07-25 19:14:32

标签: javascript jquery mobile

我正在尝试加载一个新页面(实际上使用jQuery mobile的新div),具体取决于所选的单选按钮。

<div id="main_menu">
    <div data-role="fieldcontain">
        <fieldset data-role="controlgroup">
            <div class="radioOne">
                <input type="radio" name="entry" id="radio-choice-1" value="addEmail" checked="checked" />
                <label for="radio-choice-1" class="boldWhite">Add Email Address</label>
            </div>
            <div id="entry_active_contests">
                Active Contest(s)
            </div>
            <input type="radio" name="entry" id="radio-choice-2" value="contest1"  />
            <label for="radio-choice-2" class="boldWhite">Contest</label>
        </fieldset>
    </div>
</div>

脚本就像

$('.choose').click(function(){
    if ($("input[@name='entry']:checked").val() == 'addEmail'){
        window.location.hash ="first";
        alert ('1');
    }
    else if  ($("input[@name='entry']:checked").val() == 'contest1') {
        window.location.hash ="contest";
        alert ('2');
    }   else {
        alert ('3');
    }
});

所有我得到的都是警觉3.这是奇怪的,因为我做了一个小提琴,它工作正常。 http://jsfiddle.net/zkQHP/1/

为什么这对我的实际网站不起作用的任何想法?

3 个答案:

答案 0 :(得分:0)

你需要这个吗?

else {
        alert ('3');
    }

为什么不将它作为两个if语句或if / else语句?

$('.choose').click(function(){

    var val = $("input[@name='entry']:checked").val();

    if(val == 'addEmail'){
        window.location.hash ="first";
        alert ('1');
    }
    if(val == 'contest1') {
        window.location.hash ="contest";
        alert ('2');
    }   
});

在这里工作:http://jsfiddle.net/jasongennaro/zkQHP/6/

答案 1 :(得分:0)

这在JSFiddle中工作正常http://jsfiddle.net/kasdega/QMw9P/我同意epascarello的评论我会改变代码来阅读:

$('.choose').click(function() {
    var valToCompare = $("input[name='entry']:checked").val();

    if (valToCompare == 'addEmail') {
        window.location.hash = "first";
        alert('1');
    } else if (valToCompare == 'contest1') {
        window.location.hash = "contest";
        alert('2');
    } else {
        alert('3');
    }
});

答案 2 :(得分:-2)

您可以使用$(':checked')轻松抓取所选的单选按钮。我不确定你为什么要跳过这些篮球。

$('.choose').click(function(){
    console.log($(':checked').val());
    // You have the selected radio button here
    // Do stuff
});