如何在单选按钮上获取onchange回调,但只有SET的那个

Gav*_*iel 6 jquery onchange radio-button jquery-mobile

我有一组具有相同名称但不同值的单选按钮.我想做点什么:

$("#langs").on("change", "[name=locale]", myfunction);
Run Code Online (Sandbox Code Playgroud)

这是有效的,但当我点击一个新的单选按钮时,myfunction会被调用两次:一次是"旧"单选按钮,它会自动取消选中,一次是新单选按钮,我点击它.

将onchange更改为onclick不是一个解决方案,因为我将它与jquery-mobile一起使用并且它使用label包装输入,因此标签被点击,而不是输入.

Bri*_*laz 6

您可以$(this)作为参数传递myfunction,然后在内部myfunction检查是否选中了单选按钮

$("#langs").on("change", "[name=locale]", function() { myfunction($(this)); } );

function myfunction(elem) {
    if(elem.is(':checked')) {
        // code here
    }
}
Run Code Online (Sandbox Code Playgroud)


Phi*_*ord 6

这对你有用吗?继JQM文件

HTML:

<div data-role="page"> 
    <fieldset data-role="controlgroup">
        <legend>Choose a language:</legend>
        <input type="radio" name="langs" id="english-lang" value="en" />
        <label for="english-lang">English</label>
        <input type="radio" name="langs" id="korean-lang" value="ko" />
        <label for="korean-lang">Korean</label>
    </fieldset>
</div>?
Run Code Online (Sandbox Code Playgroud)

JS:

$("input[name=langs]:radio").bind( "change", function(event, ui) {
    console.log('Lang: '+$(this).val());

    // Call function here
});
Run Code Online (Sandbox Code Playgroud)