2012-05-11 6 views
0

私はウェブ上でこの問題の解決策を探しました。成功しなかった後、私はここにいる。私はどこにデータを入れるべき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キーを無効にしました。

私はかなり深刻な時間的制約がありますが、これは後で出てくると確信しています。私はこの問題に確実に戻るでしょう。

+0

'onkeypress'を削除するとどうなりますか?投稿されたデータが表示されますか?もしそうなら、どこかに何らかのpreventDefaultが起こっているかもしれません。 – Amadan

+0

onkeypressをonchangeに変更しました。同じ問題 –

+1

firebugがありますか?それを取得せずにメソッドにブレークポイントを設定していない場合、失敗した手順を実行して、Enterキーを押したときにページが送信される前に呼び出されているかどうかを確認します。私は私のサンプルを試して、それは働いた。あなたのコードを送信する場合、私はあなたがそれを使用する方法を知っていない場合は、火かき棒でそれをテストすることができます。 – Dennis

答えて

0

getStymitとgetstatebyzipをonSubmitの形式で実行する必要があります。

+0

オートコンプリートされるはずなので、onSubmitに入れることはできません。 – Amadan

+0

@Amadanこれらのフィールドは非表示なので、自動完了しても問題ありません。 – gcochard

+0

Doh ...確かに。私はそれを受け取ったテキストフィールドがあることを幻覚しました... – Amadan

0

送信ボタンのタイプを変更し、onClickメソッドをonに追加します。つまり、それを作る代わりに、あなたはそれを行うためにフォーム上にIDが必要です。私は間違っていることの原因を見つけることに興味があります。火かん坊を試しましたか?

+0

この作品はあなたのためにありましたか? – Dennis

+0

後半のフォローアップの幾分かは、前にも触れましたが、私はonkeypress = "return event.keyCode!= 13" @

タグ –

関連する問題