0

1つの入力フィールドを持つ単純なフォームがあります。入力フィールドには、onchangeイベントハンドラーがあります。フィールドに値を入力し、入力フィールドがフォーカスを失わないように[完了]ボタンを直接クリックすると、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>
4

1 に答える 1

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>
于 2012-09-12T18:13:33.450 に答える