簡體   English   中英

如何根據下拉選擇取消某些HTML輸入字段?

[英]how do I suppress certain HTML input fields based on drop down selection?

假設情況:

我有一個包含11個字段的字段,字段1到11。

假設字段1是一個具有3個值的下拉列表:“ A”,“ B”,“ C”

我如何使用HTML / JavaScript這樣說:

如果用戶選擇“ A”,則僅字段2、3、4是可編輯的(其余字段則不可編輯)

如果用戶選擇“ B”,則僅字段5,6,7,8是可編輯的(其余字段則不可)

如果用戶選擇“ C”,則僅字段9,10,11是可編輯的(其余字段則不可編輯)。

謝謝!

您可以使用javascript中的元素並執行以下操作:

document.getElementById(' ... ').disabled = true;

可以在以下位置找到更多信息: https : //developer.mozilla.org/en-US/docs/Web/HTML/Element/Input

var selectControl = [['input1', 'input2', 'input3'],
                 ['input4', 'input5', 'input6', 'input7'],
                 ['input8', 'input9', 'input10', 'input11']];

var FormControl = {
init: function () {
    var myform = document.getElementById("myform");
    var myselect = myform.getElementsByTagName('select')[0];
    var defaultOption = myselect.value;

    myselect.addEventListener('change', FormControl.changeSelect, false );

    // first load
    FormControl.changeFields( defaultOption );
},

changeSelect: function ( event ) {
    var option = this.value;

    FormControl.changeFields ( option );
},

disableAllInputs: function ( ) {
    var myform = document.getElementById("myform");
    var inputs = myform.getElementsByTagName("input");

    for ( var i = 0; i < inputs.length; i++ ) 
        inputs[i].disabled = true;
},

changeFields: function ( optionSelected ) {
    var enableInputs = selectControl[optionSelected];

    // disable everything
    FormControl.disableAllInputs();

    // enable only the ones selected
    for ( var i = 0; i < enableInputs.length; i++ ) 
        document.getElementById( enableInputs[i]).disabled = false;
}
};

FormControl.init();

jsFiddle

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM