2017-12-30 30 views
-1

とテキストボックスにボックスを選択し、本当にアップcluedない同じID

同じid「Wine_name」でチェックボックスをクリックしたときに、それがテキストボックスに選択ボックスを変更することは可能である場合には疑問に思いますそれはjavascriptになると、どんな助けも大歓迎です。

ユーザーがフォームに記入するときに、選択ボックスに選択したいオプションがない場合は、チェックボックスをクリックすると、テキストを手動で入力することができます欲しいです。

+2

** ID **さんは一意で、一度に複数の要素を使用することはありません。私はあなたが2つの要素を一緒にリンクする別の方法を考えることをお勧めします。たぶんそれらに 'class'を代入するか' dataset'を使うかもしれません – NewToJS

+0

それでは、selectboxの入力タイプをテキストボックスに変更する方法はありませんか? 2箱あるよりも? –

+0

なぜこれが必要ですか?目的を指定することができれば、誰かが回避策を提案できる可能性があります。 – 31piy

答えて

1

さて、あなたはそれを行うことができます。隠れた入力を無効にして、フォームがサブミットされたときに処理されないようにしてください。

私はそれを行うために出てきたコードを見てください。

あなたはフォームを送信してサーバー側で結果を処理するだけであれば、同じ 'id'属性が本当に必要かどうかはわかりませんが、 '名前'属性。条件付きで検証するためにバックエンドを変更せずに、ビュー側で自由に異なるIDを使用できるようにします。

var checkbox = document.querySelector("#custom_value"); 
 
var select = document.querySelector("#selection"); 
 
var altSelect = document.querySelector("#selection_alt"); 
 

 
checkbox.addEventListener('change', function(event) { 
 
    select.classList.toggle('hidden'); 
 
    select.disabled = !select.disabled; 
 
    
 
    altSelect.classList.toggle('hidden'); 
 
    altSelect.disabled = !altSelect.disabled; 
 
});
.hidden { 
 
    display: none; 
 
}
<input type="checkbox" id="custom_value"> Alternative 
 

 
<br> 
 
<select id="selection" name="selection"> 
 
    <option value="1">1</option> 
 
    <option value="1">2</option> 
 
    <option value="1">3</option> 
 
    <option value="1">4</option> 
 
    <option value="1">5</option> 
 
</select> 
 

 
<input type="text" disabled class="hidden" name="selection" id="selection_alt" placeholder="Custom value..">