2016-07-01 26 views
0

次のHTMLコードは、フォームの一部であり、情報をjavaサーブレットに送信し、SQLデータベースを更新します。ドロップダウンメニューです。ユーザーが「その他」を選択すると、javascriptによってテキストボックスが表示され、ユーザーは詳細を指定できます。ただし、ユーザーがデータベース内の送信ボタンを押すと、ユーザーがテキストボックスに入力した内容ではなく、単に「その他」と表示されます。ヘルプは感謝しています、ありがとう!データベースに "その他"の代わりにテキストボックス値を提出する方法

このマークアップのすべてがサーバーに送信されます <form>要素内に含まれている、あなたは、単に descriptionのために掲示値が「その他」であるかどうかを確認してから読むことができるはずと仮定すると
<script type="text/javascript"> 
    function showfield(name){ 
     if (name == 'Other') 
      document.getElementById('div1').innerHTML = 'Please Specify: <input type="text" name="other" />'; 
     else 
      document.getElementById('div1').innerHTML = ''; 
    } 
</script> 

<select id="description" name="description" onchange="showfield(this.options[this.selectedIndex].value)" required> 
    <option disabled selected value> ---Select--- </option> 
    <option value="Accommodation">Accommodation</option> 
    <option value="Travel">Travel</option> 
    <option value="Meal Allowanced">Meal Allowances</option> 
    <option value="Flat Rate">Flat Rate Expenses</option> 
    <option value="Other">Other</option> 
</select> 
<div id="div1"></div> 
+0

selectと同じ 'name'を' input'に追加してください。この値はサーバーに「その他、[入力値はここに...]」として送信されます。 –

+0

@RoryMcCrossan こんにちは、ありがとう!しかし、私はそれを得ていませんでした。 ''; '私は「その他」をどのように置き換えるべきですか? – javaprogrammer

+0

このようなものもあります:https://jsfiddle.net/66hhwng4/ – Hackerman

答えて

0

あなたがサーバー上でチェックしているフィールドは、あなたのselectの名前である「説明」だと思います。これは確かに "Other"(これは選択されたoptionの値です)に設定されています。

私はちょっと書いたことがありますが、現在のコードではinputに別の名前を付けて、サーバ上でその名前を確認するか、選択したoptionの値を変更する必要があります。クライアントコードの

例の変更:

<select id="description" name="description" required> 
    <option disabled selected value> ---Select--- </option> 
    <option value="Accommodation">Accommodation</option> 
    <option value="Travel">Travel</option> 
    <option value="Meal Allowanced">Meal Allowances</option> 
    <option value="Flat Rate">Flat Rate Expenses</option> 
    <option value="Other">Other</option> 
</select> 
<div id="div1"> 
    Please Specify: <input type="text" name="otherDescription" /> 
</div> 

<script> 
document.querySelector('#description').addEventListener('change', function (evt) { 
    var inputWrapper = document.getElementById('div1'), 
     input = inputWrapper.querySelector('input); 
    if (evt.target.value == 'Other') { 
     document.getElementById('div1').style.display = ''; 
    } else { 
     document.getElementById('div1').style.display = 'none'; 
     input.value = ''; 
    } 
}); 
</script> 

ザ・あなたは、サーバー上の 'otherDescription' をチェックする必要があります。

希望します。

+0

こんにちは!ご意見をいただきありがとうございます。コードをどのように変更すればよいですか? – javaprogrammer

+0

私は 'div'に' input'フィールドを書いて、選択が変更されるまで隠しておきます。 – idan

+0

現在、コンピュータの近くにいないので、実際にサンプルを書くことはできません...コンピュータの近くにいるときにそれがまだ関連していれば、私の答えにスニペットを追加します。 – idan

0

値はotherです。

コードは、サーバー側の実装によって異なります。

関連する問題