2012-01-26 2 views
0

Я прочитал много документации о jQuery Mobile, кнопках и формах, но я не понял все. Итак, я хочу деактивировать кнопку отправки, пока ответы на форму не будут действительны.Активировать кнопку отправки в действительной форме с помощью jQuery Mobile

Вот мой рабочий код ...

$(document).ready(function() 
{ 
    /* $('#submit').button('enable') */ /* Console says "Uncaught TypeError: Object [object Object] has no method 'button'" */ 
    $('#submit').attr("disabled", true); 
    /* Do stuff */ 
    $('#form').live('keyup change', function() 
    { 
    if (isEmailValid && isTextValid) 
    { 
     /* $('#submit').attr("disabled", false); */ /* Button is not enable */ 
     $('#submit').button('enable'); 
    } 
    }); 
}) 
... 
<div class="content-primary"> 
    <form id="form"> 
    <button data-theme="a" id="submit" type="submit">Submit</button> 
    </form> 
</div> 

Мой код работает в Chrome, Firefox и Internet Explorer, но я не понимаю логику: отключить и включить представить по-разному!

Является ли мое решение правильным?

Благодарим за помощь.

Приветствия,

V.

ответ

3

Вы можете использовать функцию JQuery Mobile button() для включения и отключения кнопки передачи штучка:

$(document).delegate('[data-role="page"]', 'pageinit', function() { 
    var $submit = $(this).find('#submit'), 
     $text = $(this).find('input[type="text"]'); 
    $text.bind('keyup', function() { 
     if (this.value == '') { 
      $submit.button('disable'); 
     } else { 
      $submit.button('enable'); 
     } 
    }).trigger('keyup'); 
}); 

Вот демо: http://jsfiddle.net/tewV6/

Кроме того, вы должны избегать использования обработчика события document.ready при использовании jQuery Mobile. Вместо этого используйте pageinit, предназначенные для элементов data-role="page", как в моем примере выше.

+0

О да! Очень блестящий. Спасибо, Джаспер. Я буду размышлять (и работать!) По этим подробным объяснениям. С уважением. V. – Vincent

+1

Просто очень маленькое примечание: .trigger ('keyup') запускает начальную проверку, так что кнопка отправки будет включена сразу, если все текстовые поля имеют значение. Блестящий трюк –

 Смежные вопросы

  • Нет связанных вопросов^_^