jQuery-如果不存在val,则阻止Select值替换文本
我有一个select,第一个选项通常是“Please select blah,blah,blah”,没有任何值,因此当我使用下面的代码进行检查时,第一个选项的值为“Please select an option”。我如何防止这种情况 请看这里的例子 代码jQuery-如果不存在val,则阻止Select值替换文本,jquery,Jquery,我有一个select,第一个选项通常是“Please select blah,blah,blah”,没有任何值,因此当我使用下面的代码进行检查时,第一个选项的值为“Please select an option”。我如何防止这种情况 请看这里的例子 代码 <select> <option>Please select an option</option> <option value="one">Option One</option>
<select>
<option>Please select an option</option>
<option value="one">Option One</option>
<option value="two">Option Two</option>
<option value="three">Option Three</option>
</select>
$('select').on('change', function(){
if ( $(this).val ) {
// do something
}
});
请选择一个选项
选择一
选择二
选择三
$('select')。在('change',function()上{
if($(this.val){
//做点什么
}
});
我不相信您可以阻止这个值进入JQuery代码。然而,您可以测试它并丢弃它
$('select').on('change' function() {
if ($(this).val() == "Please select an option") {
// do nothing
} else {
// do something
}
});
或
尝试在第一个选项和JavaScript代码中保留“”值,您可以控制用户是否选择了第一个选项
<select>
<option value="">Please select an option</option>
<option value="one">Option One</option>
<option value="two">Option Two</option>
<option value="three">Option Three</option>
</select>
<br>
<p>The selected value is <span>???</span></p>
<script>
$('select').on('change', function(){
var selectVal = $(this).val();
if($(this).val() == ""){
selectVal = "You must select an option";
}
console.log('selectVal = ' + selectVal);
$('span').text(selectVal);
});
</script>
请选择一个选项
选择一
选择二
选择三
选择的值是
$('select')。在('change',function()上{
var selectVal=$(this.val();
if($(this).val()==“”){
selectVal=“您必须选择一个选项”;
}
log('selectVal='+selectVal);
$('span').text(selectVal);
});
您还可以使用:
请选择一个选项
选择一
选择二
选择三
选择的值是
$('select')。在('change',function()上{
var selectVal=$(this.val();
如果(!parseInt(selectVal))
{
selectVal=“”;
}
log('selectVal='+selectVal);
$('span').text(selectVal);
});
下面是一个使用.find()
的示例:选中的:not()
:contains()
使用切换未选择的选项请选择一个选项
禁用第一个子项的另一种解决方案
注意:如果要将选项设置为占位符并在选择后仍然可用,则不建议使用此选项
看
或禁用选项:包含您喜欢的文本
$("select option:contains('Please select an option')").attr("disabled",true)
同时使用value=“SPECIFIC\u value”
这并没有回答这个问题,这个问题是从结果中排除第一个选项。当选择第一个选项时,您的答案显示为0。我刚刚提供了实现目标的方法:)!parseInt(“0”)为false,因此您应该编辑代码。请参考此处提供的fiddle示例:)。在选择索引0时既不显示0,也不显示任何错误!parseInt(“0”)
<select>
<option value="0">Please select an option</option>
<option value="1">Option One</option>
<option value="2">Option Two</option>
<option value="3">Option Three</option>
</select>
<br>
<p>The selected value is <span>???</span></p>
$('select').on('change', function(){
var selectVal = $(this).val();
if(!parseInt(selectVal))
{
selectVal = "";
}
console.log('selectVal = ' + selectVal);
$('span').text(selectVal);
});
$('select').on('change', function(){
var selectVal = $(this).find("option:selected:not(:contains('Please select an option'))").attr('value');
if(!selectVal)return console.log("not allowed");
console.log('selectVal = ' + selectVal);
$('span').text(selectVal);
});
$("select option:first-child").attr("disabled",true);
$("select option:contains('Please select an option')").attr("disabled",true)
$("select option[value='SPECIFIC_VALUE']").attr("disabled",true)