2017-05-24 89 views
-1

我目前有一个包含2个选择下拉列表的表单。如果用户从第一个选择(实体类型)中选择选项3,我需要第二个“名称”从“状态ID”更改为“状态”。如果选择第一个选择的某个值,请更改第二个选择的名称

<form id="home-form" name="home-form" method="get" > 
 

 
    <select id="entitytype" class="select required" > 
 
    <option value="">Select Your Entity Type</option> 
 
    <option value="test1">1</option> 
 
    <option value="test1">2</option> 
 
    <option value="test3">3</option> 
 
    </select> 
 
    
 
    <select id="stateID" name="stateID" class="select required" > 
 
    <option value="">Select Your State</option> 
 
    <option value="AL">Alabama</option> 
 
    <option value="AK">Alaska</option> 
 
    <option value="AZ">Arizona</option> 
 
    </select> 
 
    
 
<button type="submit" class="btn-form">GET STARTED</button> 
 
    
 
</form>

+0

当它选择的 – LebCit

+1

可能重复[使用jQuery基于第一选择列表选项更改第二选择列表],你可以使用'.prop()'和切换name属性(https://开头计算器.com/questions/10570904/use-jquery-to-change-a-second-select-list-based-first-select-list-option) –

+0

不完全,我不想调整选项第二个选择的值,但第二个选择的名称。 – Clyde

回答

0

动态更改表单元素的name属性听起来并不像一个非常好的事情在做。我建议看看你的服务器端逻辑 - 假设它是某种模型绑定引起这种要求。

如果您没有其他选择,则可以将change事件处理程序挂接到第一个select,该处理程序将读取所选值并更改第二个所需属性。试试这个:

$('#entitytype').change(function() { 
 
    var value = $(this).val(); 
 
    $('#stateID').prop('name', function() { 
 
    return value == 'test3' ? 'state' : 'stateID'; 
 
    }); 
 
    
 
    console.log($('#stateID').prop('name')); // only to show the effect in this demo 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<form id="home-form" name="home-form" method="get"> 
 
    <select id="entitytype" class="select required"> 
 
    <option value="">Select Your Entity Type</option> 
 
    <option value="test1">1</option> 
 
    <option value="test1">2</option> 
 
    <option value="test3">3</option> 
 
    </select> 
 

 
    <select id="stateID" name="stateID" class="select required"> 
 
    <option value="">Select Your State</option> 
 
    <option value="AL">Alabama</option> 
 
    <option value="AK">Alaska</option> 
 
    <option value="AZ">Arizona</option> 
 
    </select> 
 

 
    <button type="submit" class="btn-form">GET STARTED</button> 
 
</form>

0

设置一个监听器要等到选择输入被改变,那么如果它被设置为“TEST3”,然后更新与属性的方法名称。

$('#entitytype').change(function() { 
    var name = $(this).val() === 'test3' ? 'state' : 'stateID'; 
    $('#stateID').attr('name', name); 
}); 

并且一定要改回来,如果它改变了第三个选项。另外,如果您将此脚本放在表单的HTML之前,请确保将其包装在文档就绪功能中。

$(document).ready(function() { 
    // Code here 
}); 
相关问题