我是JavaScript的新手,我有以下问题。
我的HTML
代码是普通SELECT
<select>
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="mercedes">Mercedes</option>
<option value="audi">Audi</option>
</select>
仅当用户选择TextFied
时,我才需要在SELECT
下显示Audi
。
<input type="text" name="something">
最好的方法是什么?
答案 0 :(得分:3)
开始使用JQuery
(JQuery)。
这是javascript:
$(document).ready(function(){
// On Select option changed
$("#someId").change(function(){
// Check if current value is "audi"
if($(this).val() === "audi"){
// Show input field
$("#textInputId").show(); //This changes display to block
}else{
// Hide input field
$("#textInputId").hide();
}
});
});
这是HTML
<select id="someId">
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="mercedes">Mercedes</option>
<option value="audi">Audi</option>
</select>
<input type="text" style="display:none;" id="textInputId" name="someName"/>
这是关于JSFiddle的例子:
答案 1 :(得分:2)
这样做:
<select id="select">
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="mercedes">Mercedes</option>
<option value="audi">Audi</option>
</select>
<input type="hidden" id="txt" name="something">
做这样的事情:
select.onchange=function(){
if(select.value=="audi"){
txt.type="text";
}
}
答案 2 :(得分:1)
你可以使用像这样的jquery轻松实现它:
这是Html:
<select id="cars">
<option value="-1">Select One</option>
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="mercedes">Mercedes</option>
<option value="audi">Audi</option>
</select>
和文字字段:
<input type="text" name="something" id="txtCar" style="display:none;">
$('select#cars').change(function(){
if($(this).val() == "audi")
{
$('input#txtCar').show();
}
});
以下是DEMO
答案 3 :(得分:0)
将其放在页面底部(如果您已将jquery包含在此页面中):
<script>
$('select').change(function () {
if ($(this).val() == 'audi') {
$(this).parent().append('<input type="hidden" name="something">');
}
});
</script>
答案 4 :(得分:0)
您可以在onchange
代码附加select
事件,并可以执行您想要的操作。像
<强> HTML 强>
<div id="result">
<select id="mySelect">
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="mercedes">Mercedes</option>
<option value="audi">Audi</option>
</select>
</div>
<强> JS 强>
var select = document.getElementById("mySelect");
select.addEventListener("change", function() {
if(this.options[this.selectedIndex].value == 'audi'){
var input = document.createElement('input');
input.type="text";
input.id="txt";
input.name="something";
document.getElementById('result').appendChild(input);
}
});
答案 5 :(得分:0)
鉴于发布的HTML,您没有使用特定标识符(class
或id
)来标识相关元素,并且假设您没有指定任何JavaScript库的可用性,我建议使用以下'普通'JavaScript解决方案:
function showInputWhen(evt,val){
var el = evt.target;
el.nextElementSibling.style.display = el.value.toLowerCase() == val.toLowerCase() ? 'inline-block' : 'none';
};
var selectEl = document.querySelector('select');
selectEl.addEventListener('change', function(e){
showInputWhen(e,'audi');
});
参考文献: