jQuery-如果不存在val,则阻止Select值替换文本

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,第一个选项通常是“Please select blah,blah,blah”,没有任何值,因此当我使用下面的代码进行检查时,第一个选项的值为“Please select an 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)