Переписать javascript в jquery для нескольких форм на странице - PullRequest
1 голос
/ 11 июня 2009

У меня вопрос по поводу нескольких форм similair на одной странице. Допустим, у вас есть страница с двумя или более опросами. HTML-формы сами по себе очень похожи. Раньше это был раствор, построенный с использованием встроенного JavaScript. Что, конечно, не самое лучшее решение. Он создан так, что каждая форма опроса имеет свою собственную функцию js. Но я больше не хочу этого.

Как я могу переписать скрипт, чтобы он знал, какая форма была отправлена.

Вот текущая форма:

 <div style="display:block;">
    <form name="pollvoteform3" method="post" xaction="">
        <input type="hidden" name="poll" value="3">
        <input type="hidden" name="cmd" value="">
        <div class="poll">
            <div class="pollOption">
                <div class="pollRadio"><input type="radio" name="poll_option3" value="1"></div>
                <div class="pollOptionText">Option 1</div>
            </div>
            <div class="pollOption">
                <div class="pollRadio"><input type="radio" name="poll_option3" value="2"></div>
                <div class="pollOptionText">Option 2</div>
            </div>
           <p> <input type="button" name="bt_submit" class="pollButtonNormal" onmouseover="this.className='pollButtonHigh';" onmouseout="this.className='pollButtonNormal';" value="Stem" onclick="javascript:vote3();">
            <input type="button" name="bt_submit" class="pollButtonNormal" onmouseover="this.className='pollButtonHigh';" onmouseout="this.className='pollButtonNormal';" value="Resultaten" onclick="javascript:viewResults3();"></p>
        </div>
    </form>
</div>
<div style="display:none;">
    <form><input type="button" name="bt_submit" class="pollButtonNormal" onmouseover="this.className='pollButtonHigh';" onmouseout="this.className='pollButtonNormal';" value="Resultaten" onclick="javascript:viewResults3();"></form>
</div>

редактирование:

как мне переписать это:

function vote1() {
    r=document.forms.pollfvoteform3.poll_option3
    var voted=false;
    if (r.value!=null && r.checked)
    {
        voted=true;
    } else {
        for (i=0;i<r.length;i++){
            if (r[i].checked) {
                voted=true;
                break;
            }
        }
    }
    if (voted) {
        document.forms.pollvoteform3.submit();
    } else {
        alert("Youre wrong!.");
    }
}

на запрос.

1 Ответ

1 голос
/ 11 июня 2009

Вам нужно указать идентификатор и общий класс для ваших форм:

<form name="form1" class="myforms" id="form1">

Затем вы можете назначить обработчики событий для обеих форм за один раз:

$(".myforms").submit(function() {
  formId = $(this)[0].id;
});

Как вы можете видеть, завершение этого в упакованный набор jQuery может легко дать вам идентификатор конкретной формы.

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