2012-10-09 55 views
2

代码如下并在http://jsfiddle.net/eCubeH/utBEs/1/选择,null选项,区别在Chrome和Firefox中

选择是必需的。因此,选择第一个空字符串值选项应该使其无效。我使用jquery条件:($(myChangeSelector +“:invalid”).length> 0)来标识无效状态。 Firefox 15正确返回值1以显示它无效。 Chrome 21返回0,然后继续表现不一致。

一直在打我的头,这是一个Chrome错误或我错过了什么?

-----代码-----

<select id="selDisbLocation" required="" tabindex="3"> 
    <option value="" >-</option> 
    <option value="0" selected>Center</option> 
    <option value="1" >Office</option> 
</select>​ 

$(function() { 
    $("select").live(
    "change", 
    function(event) { 
     myChangeSelector = "#" + event.target.id; 
     alert(myChangeSelector); 
     alert($(myChangeSelector).val()); 
     alert("Invalid Length: " + $(myChangeSelector + ":invalid").length); 
    }); 
}); 

回答

0

https://developer.mozilla.org/en-US/docs/CSS/:invalid,CSS的伪类:invalid只适用于<input><form>元素。这可能是你意想不到的结果的原因。

我会建议通过值或索引来取代<select>而无效。

+0

感谢您的建议,这是我将不得不采取的路线。我在http://stackoverflow.com/questions/7815951/jquery-invalid-html-5-form-with-required-select-element看到一个相关的问题。我也尝试过.is(':invalid'),它在Chrome中出现同样的错误,在FF中工作。 – eCubeH

+0

是的,这可能是由于不同的浏览器如何实现该功能。因为'