Как конфертировать из действия формы javascript в jquery? - PullRequest
1 голос
/ 29 декабря 2011

У меня есть код javascript формы действия:

<form name="myform" onsubmit="return OnSubmitForm();" method="post">
<input type="text" value="" id="type" />
<input type="submit" value="submit" />
</form>

И JavaScript:

function OnSubmitForm() {
    var type = document.getElementById('type').value;
    if(type == '1') {
        document.myform.action = "index.php?type=1";
    }
    if(type == '2') {
        document.myform.action = "index.php?type=2";
    }
    return false;
}

Как конвертировать этот javascript в jquery, пожалуйста, идеи?

Ответы [ 2 ]

4 голосов
/ 29 декабря 2011
$("form[name='myform']").submit(function() {
    this.action = "index.php?type=" + this.type.value;
    return false;
});
  • form[name='myForm'] выбирает форму с именем myForm.
  • Вызов .submit(function () { ... }) связывает обработчик события для события submit.
  • Внутриthis функция относится к форме.

Пример: http://jsfiddle.net/4SZrH/ (см. форму action в Firebug или аналогичную).

1 голос
/ 29 декабря 2011

Сначала обратите внимание, что эта функция всегда возвращает значение false, поэтому ваша форма никогда не будет отправлена. Но чтобы ответить на ваш вопрос, вы можете использовать jQuery submit event

$("form[name='myform']").submit(function(){
    var type = this.type.value;
    if (type === '1' || type === '2')
        this.action = "index.php?type=" + type;

    return false;
});

Или проще:

$("#myForm").submit(OnSubmitForm);

Также обратите внимание, что для обработчиков событий dom уровня 0 вы не хотите встроенный оператор return. В будущем просто сделай

<form name="myform" onsubmit="OnSubmitForm();" 

И пусть OnSubmitForm вернет true или false

Наконец, обратите внимание, что в JavaScript функции, начинающиеся с заглавной буквы по соглашению, обозначают конструктор . Попробуйте переименовать эту функцию в onSubmitForm

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...