0

我想突出显示我的 html 中没有选定值的所有选择。对于我可以看到的类似问题,我的选择器是正确的,但是它不起作用。

它有什么问题?

$('[value=""]').addClass('fill-field');
4

4 回答 4

0

<select>s 没有value属性 - 他们<option>的 s 有。所以,你不能只用一个属性选择器来做到这一点。使用.filter().

$('select').filter(function ()
{
    return !$(this).val();
}).addClass('fill-field');

但是,听起来您正在做一些客户端表单验证。我可以建议不要重新发明轮子吗?

于 2012-10-27T04:34:42.733 回答
0

试试这个

$("input, select").change(function(){ // as from your prev. question
if($(this).val() == ''){
    $(this).addClass('fill-field');
} else {
    $(this).removeClass('fill-field');
}
});

演示

于 2012-10-27T04:34:43.633 回答
0

工作演示*选择演示* http://jsfiddle.net/QF5QJ/ - http://jsfiddle.net/8hQPS/

希望它符合原因`:)

示例代码

var $selects = $("select").filter(function(i) {
    return $.trim($(this).attr("value")) == '';
});

$selects.css({
    background: 'orange'
});​

或者

var $tds = $("td").filter(function(i) {
    return $.trim($(this).attr("value")) == '';
});

$tds.css({
    background: 'orange'
});​
于 2012-10-27T04:40:33.840 回答
0

试试这个:

// add the rule here
 $.validator.addMethod("valueNotEquals", function(value, element, arg){
  return arg != value;
 }, "Value must not equal arg.");

 // configure your validation
 $("form").validate({
 rules: {
   SelectName: { valueNotEquals: "default" }
  },
  messages: {
   SelectName: {
    valueNotEquals: "Please select an item!"
   }
  }  
 });

或者你可以像这样申请你的课程:

// add the rule here
 $.validator.addMethod("valueNotEquals", function(value, element, arg){
  return arg != value;
 }, "Value must not equal arg.");

 // configure your validation
 $("form").addClass('fill-field');
于 2012-10-27T04:51:46.057 回答