.prop if语句与JQuery

时间:2014-01-06 13:40:09

标签: javascript jquery if-statement prop

我试图理解为什么当我在if语句的单选按钮上使用.prop()时,它总是返回false。我的目标是只在选择“#manualOverrideNo”单选按钮时才运行JS。如果有人能够启发我,我将非常感激。这是代码片段的小提琴 - http://jsfiddle.net/gv0029/xEfw4/1/ - 以及此处:

HTML: 手动覆盖:

<label>No<input type="radio" name="manualOverride" 
id="manualOverrideNo" value="no" checked /></label>

<label>Yes<input type="radio" name="manualOverride" 
id="manualOverrideYes" value="yes" /></label>

<label>Footage:<input type="number" id="footage" 
name="footage" value="" /></label>  

<label>Post Quantity:<input type="postQuantity" 

name="postQuantity" id="postQuantity" value="" /></label> 

JS:

if($('#manualOverrideNo').prop('checked')) {
    //Code For Auto-complete

            //Quantity for Posts
            $('#footage').bind('keypress keydown keyup change', function(){
                var footage = parseFloat($(':input[name="footage"]').val(),10);
                var total = '';
                if(!isNaN(footage)){
                total = Math.ceil(footage /7);
                }
        $(':input[name="postQuantity"]').val(total.toString());
            });
}

再次感谢!你们都是我的英雄!

1 个答案:

答案 0 :(得分:1)

我已经改变了小提琴,现在应该可以使用了

http://jsfiddle.net/xEfw4/5/

你需要在小提琴中使用.prop而不是.attr,同样,你需要在动作发生后检查值,而不是在页面加载时检查。

//Code For Auto-complete
//Quantity for Posts
$('#footage').bind('keypress keydown keyup change', function()
{
    if($('#manualOverrideNo').prop('checked')) 
    {
        var footage = parseFloat($(':input[name="footage"]').val(),10);
        var total = '';
        if(!isNaN(footage))
        {
            total = Math.ceil(footage /7);
        }
        $(':input[name="postQuantity"]').val(total.toString());
    }
});

http://api.jquery.com/prop/有关于属性和属性之间差异的信息。