.pro if заявление с JQuery

0

Я пытаюсь понять, почему, когда я использую.prop() на радиокнопке для оператора if, он всегда возвращает false. Моя цель - запустить JS только при выборе переключателя "#manualOverrideNo". Если бы кто-нибудь мог просветить меня, я был бы очень благодарен. Вот сценарий фрагмента кода - 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());
            });
}

Еще раз спасибо! Я - мой герой!

  • 0
    Несколько советов: parseFloat принимает parseFloat . .toString не нужен, так как val() все равно сделает это. Если вы на новую версию JQuery канавы bind , использовать on .
  • 1
    Код в вашем jsfiddle работает нормально. Можете ли вы объяснить более четко, что происходит не так?
Показать ещё 10 комментариев
Теги:
if-statement
prop

1 ответ

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/ содержит информацию о различиях между атрибутами и свойствами.

  • 0
    OOOOOOhh. Хорошо, это имеет большой смысл. Спасибо!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню