Javascript - 如果选择了某个选项,则使元素消失
Javascript - Make an element dissapear if an option is selected
>我在下拉菜单中列出了国家/地区
<select name="country_list" id="countries"><option value="">Please select</option>
<option value="1">USA</option>
<option value="2" selected="">Canada</option>
<option value="3">Rest of the World</option>
<p><input type="text" name="state_field" value="" id="state"></p>
我的目标是:如果选择值 3,输入字段"state"将消失。如果选择选项 1 或 2,则应显示字段"状态"。
如果用户已经在输入字段"state"中输入了一个值(因为之前选择了选项 1 或 2),并且他将其更改为选项 3,则代码应首先擦除在状态字段中输入的值,然后使该字段消失。
Javascript代码会是什么样子的?
感谢您的帮助!
更新:
显然,已经有一个函数在运行"onchange",因此HTML看起来像这样:
<select name="<select name="country_List" onchange="checkCountry();" id="countries">
<option value="">––> Select</option>
<option value="1">USA</option>
<option value="2">Canada</option>
<option value="3">Mexico</option>"
<option value="4">Argentina</option>"
<option value="5">Australia</option>"
</select>
这似乎干扰了为这种情况建议的代码。在运行"onchange"函数"checkCountry()"后,有没有办法运行代码来隐藏"状态"?
首先,您需要验证您的 html;您缺少结束</select>
标记。其次,在不需要时必须禁用文本框,以便在提交表单时不会将其包含在表单数据中。以下内容应满足您的要求:
$('#countries').on('change', function() {
if( $.trim( this.value ) === '3' ) {
$('#state').val('').prop('disabled', true).closest('p').hide();
} else {
$('#state').prop('disabled', false).closest('p').show();
}
});
$('#countries').on('change', function() {
if( $.trim( this.value ) === '3' ) {
$('#state').val('').prop('disabled', true).closest('p').hide();
} else {
$('#state').prop('disabled', false).closest('p').show();
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<select name="country_list" id="countries"><option value="">Please select</option>
<option value="1">USA</option>
<option value="2" selected="">Canada</option>
<option value="3">Rest of the World</option>
</select>
<p><input type="text" name="state_field" value="" id="state"></p>
更新
这应该满足你更新的要求;你只需更新逻辑,这样你最终会在 if 条件中获得最少数量的子句或布尔表达式:
$('#countries').on('change', function() {
if( $.trim( this.value ) === '2' || $.trim( this.value ) === '1') {
$('#state').prop('disabled', false).closest('p').show();
} else {
$('#state').val('').prop('disabled', true).closest('p').hide();
}
})
.change();
$('#countries').on('change', function() {
if( ['1','2'].indexOf( this.value ) > -1 ) {
$('#state').prop('disabled', false).closest('p').show();
} else {
$('#state').val('').prop('disabled', true).closest('p').hide();
}
})
.change();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<select name="country_list" id="countries"><option value="">Please select</option>
<option value="1">USA</option>
<option value="2" selected="">Canada</option>
<option value="3">Rest of the World</option>
</select>
<p><input type="text" name="state_field" value="" id="state"></p>
请注意,.change()
在页面加载时触发 change
事件,因此如果值不是 1 或 2,文本框将被隐藏。
在 JavaScript 中:
<script>
function show(mode)
{
document.getElementById('state').style.visibility = (mode) ? 'visible' : 'hidden';
}
<script>
<select name="country_list" id="countries"><option value="">Please select</option>
<option value="1" onclick="show(true)">USA</option>
<option value="2" onclick="show(true)">Canada</option>
<option value="3" onclick="show(false)">Rest of the World</option>
<p><input type="text" name="state_field" value="" id="state"></p>
JSFIDDEL
$( "select#countries" )
.change(function () {
if($("select#countries option:selected").attr("value")=="3"){
$("select#countries").hide();
$("#state").show();
$("#state").val($("select#countries option:selected").text());
}else{
$("#state").hide();
$("select#countries").show();
$("#state").val("");
}
});
$( "#state" )
.change(function () {
if($("#state").val()==""){
$("#state").hide();
$("select#countries").show();
}else{
}
});
吉斯菲德尔
相关文章:
- 当实现javascript倒计时时,其他html元素将消失
- Selenium-webdriver (Java Script) 等待元素消失
- 使用 JavaScript 使表单元素消失
- HTML5 画布元素消失
- 当元素消失时,不会触发鼠标输出
- Javascript - 如果选择了某个选项,则使元素消失
- jQuery-onClick事件使元素消失
- iOS 8 css旋转元素消失
- 使用jQuery/JavaScript加载页面时使元素消失
- 元素消失,直到我悬停在它们上面(Chrome)
- js -使用填充属性的圆圈,使圆圈中的元素消失.如何避免这种情况
- 固定位置的元素消失
- JQuery移动列表视图元素消失
- 使用CSS动画使HTML元素消失
- 为什么当我设置溢出属性为隐藏,然后一个伪元素消失
- Toggling marginTop而不使元素消失
- 当我将它们与jQuery一起使用时,我的ul中的元素消失了
- 当使用 element.style = <一些 CSSStyleDeclaration> 时,会使元素消失
- 拉斐尔:图形元素消失
- 我如何保持我的ul元素消失时,它被单击