function brandAdd(){
//TODO添加品牌和机型
//alert($("#abc-machine-brand").val());
if(document.getElementById("abc-machine-brand").value==null){
alert(); 

} else {
    ...
}
}<select id="abc-machine-brand" name="abc-machine-brand" style="width: 100px;">
<option value=null selected>选择品牌</option>option里的值明明是null,而当我判断的时候就是alert不出来,为什么?而我改成这样后,就没问题了。我的判空肯定是出了问题,option里的值是null,该怎么该addBrand函数
function brandAdd(){
//TODO添加品牌和机型
//alert($("#abc-machine-brand").val());
if(document.getElementById("abc-machine-brand").value==“选择品牌”){
alert(); 

} else {
    ...
}
}<select id="abc-machine-brand" name="abc-machine-brand" style="width: 100px;">
<option value="选择品牌" selected>选择品牌</option>

解决方案 »

  1.   

    document.getElementById("abc-machine-brand").value是个空字符串。
      

  2.   

    document.getElementById("abc-machine-brand").value=="null"
      

  3.   

    null是个关键字
    null不等于 "null" 
    html元素的value值最好不要使用关键字 容易混淆
      

  4.   


    只要<option value="null" selected>选择品牌</option> 中的value=null,或者“null”,在brandAdd函数中都取不到值, 而value=“”时则没有问题。 能否深入讲解,在网上没有找到答案,只能请教高手
      

  5.   


    if(!(document.getElementById("abc-machine-brand").value)){}
    楼主这样判断试试
      

  6.   

    我3楼不是已经告诉楼主答案了么 brandAdd函数中if判断条件改成3楼那样
      

  7.   

    null:代表一个空的对象。
    ""  :代表一个空字符串,是一个实例对象,这个实例对象的值长度为0.
    "null":也是一个实例对象它的值是字符串null,长度为4.你上面的
      

  8.   

    你写成这样应该可以:if(document.getElementById("abc-machine-brand").value=="null"){}
      

  9.   

    根本不对  如果是null或者“null”是一样的,“”或者换成“字符串”就没问题
      

  10.   

    当给option的value赋值为null的时候,它表示的是字符串的"null",这点你可以用
    alert(typeof document.getElementById("brandSelect").value);验证。
    很显然"null"和null是不一样的。
      

  11.   

    还有。通过document.getElementById("brandSelect").value得到的肯定是个字符串,即使你没指定value值,它返回的是text文本值,如果连文本值都没指定,就返回空字符串。
    所以通过document.getElementById("brandSelect").value == null得到的结果肯定为false。
      

  12.   


    if(document.getElementById("abc-machine-brand").value==null){} 
    修改:
    if(document.getElementById("abc-machine-brand").value==""){
    alert();  } 
      

  13.   

    alert()必须传入参数,哪怕打只打一对引号也行。