2009-06-11 55 views
1

我在一个页面上有多个相似表单的问题。假设你有一个有两个或两个以上民意调查的页面。本身的HTML表单非常相似。以前,这是一个用内联javascript构建的soltuion。这当然不是最好的解决方案。它的建立方式是每个调查表都有自己的js功能。 但这不是我想要的东西了。将javascript重写为jquery以获得页面上的多个表单

如何重写脚本以便知道所提交的表单。

这里是目前的形式:

<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!."); 
    } 
} 

jQuery的。

回答

1

你需要给一个ID和一个公用类的形式:

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

正如你可以看到包装:

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

然后你就可以一气呵成分配事件处理程序两种形式这成一个jQuery包裹的设置可以很容易地给你具体表单的id。

+0

[0]在这一行中的含义是什么:formId = $(this)[0] .id; – sanders 2009-06-11 09:54:10

相关问题