1

私は

function calcRoute() {
  var start = document.getElementById('start').value;
}

そして、

<select id="start" onchange="calcRoute();">
  <option value="somevalue">Dropdown 1</option>
  <option value="somevalue">Dropdown 2</option>
  <option value="somevalue">Dropdown 3</option>
</select>

すべてが正常に機能します。ここで、ドロップダウン リストの代わりに入力ボックスが必要です。問題は、私が試したことです

<form onsubmit="calcRoute();" method="get" id="start" action="#">
<input type="text" id="start" name="start">
<input type="submit" value="Go">
</form>

しかし、うまくいきません (フォームをサーバーに送信しています)。ここでデモを見ることができます。ドロップダウン リストは必要ないことを思い出してください (すべてが機能することを証明するためだけに存在します)。前もって感謝します :-)

4

1 に答える 1

1

次から変更する必要があります。

<input type="text" id="startText" name="start">

に:

<input type="text" id="start" name="start">

Javascript は名前ではなく ID を検索するためです。(そしてあなたのコードでは、IDはJavascriptが検索しているものとは異なります)

同じページで入力とドロップダウン リストを使用する場合は、変数の定義を次のように変更します。

var start = document.getElementById('startText').value || document.getElementById('start').value;

入力が空の場合と同様に、Javascript はドロップダウン リストの値を使用します。

アップデート

ID の変更に加えて、フォームを次のように変更します。

<form>
    <input type="text" id="start" name="start">
    <input type="button" onclick="calcRoute();" value="Go">
</form>

フォームの送信を許可しない。

于 2013-04-28T00:47:22.733 に答える