1

フォームがあり、そのフィールドの1つがJavaScript関数を呼び出して、他のフィールドのコンテンツに変更を加えます。

そのようです:

<form>
   <select onchange="montarconselho(distrito,'concelho');" id="distrito">

    other selects here...

   <input onclick="return submitform()" type="submit"id="inserir"/>
<form

今私が抱えている問題は、その onclick 関数呼び出しをそのままにしておくと、select の onchange 関数が機能しなくなることです。

ボタンから onclick 呼び出しを消去すると、select の onchange が機能し始めます。

それぞれの機能は互いに関係がないため、何が起こっているのかわかりません。

返信してくれた人に称賛を!

4

2 に答える 2

0

コードが次のように記述されていることを確認します。

HTML:

<form action="/echo/json/">
  <select onchange="montarconselho(distrito,'concelho');" id="distrito">
   <option value"0">0</option>
   <option value"1">1</option>
   <option value"2">2</option>
  </select>    



 <input onclick="return submitform()" type="submit" id="inserir"/>
</form>​

JS:

var montarconselho​ = function (a,b) {
    alert ('select change');
}

これが機能しない場合は、「実際の」コードのスニペットを投稿してみてください

于 2012-12-26T12:18:31.420 に答える
0

同じ問題のわずかなバリエーションがあります。私のオンチェンジはテキスト入力です。入力値を変更しますが、その入力にフォーカスを置いたままにします。次に、マウスを使用してボタンをクリック (またはアクセスキーを押す) すると、onclick がトリガーされます。

私の場合、onchange は実行されますが、ハンドラが呼び出される前に onclick が起動したり停止したりしません。

onchange は簡単な ajax プロセスを開始します。

ボタンをクリックする前に入力からタブアウトすると、両方のイベントが正常に機能します。これは、onchange が終了するまで、ブラウザーが onclick イベント リスナーの登録を解除するかのようです。

……

あはは!これを書くことで、狡猾な罠を見つけることができました。私の onchange ハンドラーは、実行中にすべてのフォーム入力を無効にすることから始めました。当たり前。

これが問題の解決策である可能性は低いように見えますが、エラーを見つけるためにコードを調べるのがいかに難しいかを示しています。コードを少し整理してみてください: ';' submitform() の後、id= の前にスペース、フォームの開始タグが 2 つ連続していますか?

于 2012-12-26T11:40:33.903 に答える