2012-09-12 36 views
0

我有一个带有一个输入字段的简单表单。输入字段有一个onchange事件处理程序。 如果我在字段中输入一个值,然后直接单击完成按钮,以便输入字段不失去焦点,我的onchange处理程序被调用,但我的href方法没有。onchange处理程序可以防止调用href方法

任何想法为什么?我花了几个小时试图弄清楚这一点,迄今为止还没有任何运气。

下面是示例代码。

<html> 
    <head> 
     <script language="Javascript"> 
     function validateInput() 
     { 
     alert("validateInput()"); 
     return true; 
     } 

     function setEdited() 
     { 
     alert("setEdited()"); 
     return true; 
     } 
     </script> 
    </head> 

    <body> 
     <form name="my_form" method="post" action="next_page.html"> 
     <table width="100%" border="0" cellspacing="2" cellpadding="5"> 
      <tr> 
       <td>field 1</td> 
       <td><input type="text" name="field_1" size="20" value="abc" onchange="setEdited()"/></td> 
      </tr> 
     </table> 
     <table border="0" cellspacing="0" cellpadding="0" width="100%" > 
      <tr> 
       <td align="right" nowrap >&nbsp;<a href="javascript:validateInput()">Done</a>  </td> 
       <td align="right" nowrap >&nbsp;<a href="javascript:window.close()" >Cancel</a>&nbsp;</td> 
      </tr> 
      </table> 
     </form> 
    </body> 
</html> 

回答

0

如果我理解正确的话,你要调用这些方法,当你点击链接。 href是一个需要url的属性。 href属性不是事件处理程序。尝试onclick属性。

<td align="right" nowrap="nowrap" > <a onclick="validateInput()">Done</a> </td> 
<td align="right" nowrap="nowrap" > <a onclick="window.close()" >Cancel</a> </td> 
+0

摆脱cilck处理程序的'javascript:'部分。不需要。 – jfriend00

+0

谢谢,我还修复了原始代码中的nowrap错误。 –

相关问题