私はウェブ上でこの問題の解決策を探しました。成功しなかった後、私はここにいる。私はどこにデータを入れるべき3つのフィールドがあるかというフォームを持っています。フィールド1は郵便番号、フィールド2と3はそれぞれ都市と州です。フォーム提出時にJavaScriptの値が設定されていません
JS関数getCityByZipHomeおよびgetStateByZipHomeは、都市と州を動的に返し、値をcity2およびstate2入力フィールドに挿入します。
何らかの理由で、マウスをクリックしてフォームを送信すると、$ _POST経由でデータが表示されます。ユーザーがEnterキーを押すと、データはキャプチャされず、隠されたフィールドのデータは表示されません。
何が間違っていますか?注意しておきたいのは、ほとんどすべてのイベントハンドラonblur、onclick、onchange..etcを試しました。
<form method="post" name="something" action="xxSome.php">
<div class="s_row">
<label for="zippy">Enter Zip Code</label>
<input id="zipcode_home" tabindex="2" type="text" onkeypress="javascript:getCityByZipHome(document.getElementById('zipcode_home').value, this.form.elements['city3']);javascript:getStateByZipHome(document.getElementById('zipcode_home').value, this.form.elements['state3']);" name="zipcode_home"/>
<input id="state3" name="state3"type="hidden"/>
<input id="city3" name="city3" type="hidden"/>
<input type="submit" value="Start Now!"/>
</div>
</form>
私のようなフォームレベル@をonSubmitを追加しようとしました:
<form method="post" name="something" action="xxSome.php" onsubmit="javascript:getCityByZipHome(document.getElementById('zipcode_home').value, this.form.elements['city3']);javascript:getStateByZipHome(document.getElementById('zipcode_home').value, this.form.elements['state3']);">
<div class="s_row">
<label for="zippy">Enter Zip Code</label>
<input id="zipcode_home" tabindex="2" type="text" name="zipcode_home"/>
<input id="state3" name="state3"type="hidden"/>
<input id="city3" name="city3" type="hidden"/>
<input type="submit" value="Start Now!"/>
</div>
</form>
そして、私のような入力レベル@運なしのonblur試してみた:
<form method="post" name="something" action="xxSome.php">
<div class="s_row">
<label for="zippy">Enter Zip Code</label>
<input id="zipcode_home" tabindex="2" type="text" onblur="javascript:getCityByZipHome(document.getElementById('zipcode_home').value, this.form.elements['city3']);javascript:getStateByZipHome(document.getElementById('zipcode_home').value, this.form.elements['state3']);" name="zipcode_home"/>
<input id="state3" name="state3"type="hidden"/>
<input id="city3" name="city3" type="hidden"/>
<input type="submit" value="Start Now!"/>
</div>
</form>
いろいろなことをやって、実際には決して解決しなかった。むしろ、私はsubmitメソッドとしてENTERキーを無効にしました。
私はかなり深刻な時間的制約がありますが、これは後で出てくると確信しています。私はこの問題に確実に戻るでしょう。
'onkeypress'を削除するとどうなりますか?投稿されたデータが表示されますか?もしそうなら、どこかに何らかのpreventDefaultが起こっているかもしれません。 – Amadan
onkeypressをonchangeに変更しました。同じ問題 –
firebugがありますか?それを取得せずにメソッドにブレークポイントを設定していない場合、失敗した手順を実行して、Enterキーを押したときにページが送信される前に呼び出されているかどうかを確認します。私は私のサンプルを試して、それは働いた。あなたのコードを送信する場合、私はあなたがそれを使用する方法を知っていない場合は、火かき棒でそれをテストすることができます。 – Dennis