将页面上多个表单的javascript重写为jquery

将页面上多个表单的javascript重写为jquery,javascript,jquery,html,Javascript,Jquery,Html,我有一个关于一页上有多个相似表格的问题。假设您有一个包含两个或多个轮询的页面。它本身的HTML表单非常相似。以前,是用内联javascript构建的解决方案。这当然不是最好的解决办法。它的构建方式是每个轮询表单都有自己的js函数。 但这已经不是我想要的了 我如何重写脚本,使其知道提交了哪个表单 以下是目前的表格: <div style="display:block;"> <form name="pollvoteform3" method="post" xaction=

我有一个关于一页上有多个相似表格的问题。假设您有一个包含两个或多个轮询的页面。它本身的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>

选择1
选择2

编辑:

我怎样才能重写这个:

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!.");
    }
}
函数vote1(){
r=document.forms.pollfvoteform3.poll_选项3
var=false;
if(r.value!=null&&r.checked)
{
投票=正确;
}否则{

对于(i=0;i,您需要为表单提供一个id和一个公共类:

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

正如您所见,将其包装到jQuery包装集中可以很容易地为您提供特定表单的id。

您需要为表单提供id和公共类:

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

正如您所见,将其包装到jQuery包装集可以很容易地为您提供特定表单的id。

这一行中的[0]是什么意思:formId=$(this)[0].id;这是一个DOM元素。$(this)是一个jQuery包装集。$(this).get(0)或$(this)[0]返回一个DOM元素。您当然可以使用this.id,但使用$(this)您可以使用方便的jQuery函数,如$(this).attr(“name”)来读取属性。这是否意味着您要获取id为“0”的表单?很抱歉造成混淆。您可以获取与this.id一起提交的表单的id。如果您要创建jQuery包装集,请使用$(this)。您可以忽略$(this)[0]。这将获取包装集的第一个DOM元素。由于$(This)只有一个元素,它将返回正在提交的表单。它与表单的id无关。此行中的[0]是什么意思:formId=$(This)[0]。id;这是一个DOM元素。$(This)是一个jQuery包装集。$(This)。get(0)或$(This)[0]返回一个DOM元素。您当然可以使用this.id,但使用$(this)可以使用方便的jQuery函数,如$(this.attr(“name”)读取属性。这是否意味着您要获取id为“0”的表单?很抱歉造成混淆。您可以获取与此.id一起提交的表单的id。如果要创建jQuery包装集,请使用$(this)。您可以忽略$(this)[0]。这将获取包装集的第一个DOM元素。作为$(this)只有一个元素,它返回正在提交的表单。它与表单的id无关。