2010-09-24 102 views
0

我有一个ID为'new_profile_choices'的表单,我使用Prototype来验证表单。当我尝试验证表单提交事件时,似乎无法处理该事件。你能帮我调试一下吗?由于原型表单提交验证错误

查看窗体的来源

<form action="/polls/vote" class="new_profile_choices" id="new_profile_choices" method="post"> 
     <input id="profile_choices_profile_id" name="profile_choices[profile_id]" type="hidden" value="2" /> 
     <input id="profile_choices_poll_id" name="profile_choices[poll_id]" type="hidden" value="50" /> 
     <div id="poll_error_messages"> 
      <p>Please select a valid vote</p> 
     </div> 
     <p> 
      <p class="choice"> 
      <input id="profile_choices_choice_id_80" name="profile_choices[choice_id]" type="radio" value="80" />Yes 
      </p> 
      <p class="choice"> 
      <input id="profile_choices_choice_id_81" name="profile_choices[choice_id]" type="radio" value="81" />No 
      </p> 
      <p class="choice"> 
      <input id="profile_choices_choice_id_82" name="profile_choices[choice_id]" type="radio" value="82" />Can't Say 
      </p> 
      </p> 
      <input class="r4corners" id="profile_choices_submit" name="commit" type="submit" value=" Vote " /> 
</form> 

原型事件处理程序

$('new_profile_choices').observe("submit", function(event){ 
alert("form submission"); 
} 

回答

0

在您的文章是一个印刷错误:在脚本块的结尾应该是一个右括号(关键)和分号(不那么重要,但应该在那里)。此外,在加载DOM后,一切都应该被执行(onload事件,ondomready):

document.observe('dom:loaded', function() { 
    $('new_profile_choices').observe('submit', function (event) { 
     alert('form submission'); 
    }); 
}); 

(这里测试:http://jsfiddle.net/YuTH5/1/

+0

你的小提琴似乎并没有在Firefox 19.0.2工作 – lethalman 2013-04-10 08:31:25