0

我正在使用 jQuery Validation Plugin 进行表单验证,但我无法使用文本字段而不是值字段来验证选择框。

这是我的情况:

[HTML]

<form id="form">
      <select name="customPrice[0][50]" id="customPrice050">
                <option value="2435">Select date... </option>
                <option value="474">Friday, Mar 1st</option>
                <option value="475">Friday, Mar 8th</option>
                <option value="476">Friday, Mar 15th</option>
      </select>
      <br/>
      <input type="submit" value="Click" />

[jQuery]

$(document).ready(function()
{       
 // 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: {
   "customPrice[0][50]": { valueNotEquals: "2435" }
  },
  messages: {
   "customPrice[0][50]": {
    valueNotEquals: "Please select a date!"
   }
  }  
 });

 }

);

这很好用。问题是值 2435 不是静态的,它总是在变化。唯一的静态属性是文本“选择日期...”。现在我想:

"customPrice[0][50]": { textNotEquals: "Select date... " }

有人能帮我吗?

4

1 回答 1

1

回调函数的中间参数是被验证的元素。您应该能够使用它从所选选项中获取文本并检查它是否不是“选择日期...”。

尝试这个:

$.validator.addMethod("selectTextNotEquals", function(value, select, arg) {
    return arg != $(select).find('option:selected').text();
}, "Text must not equal arg.");

演示

于 2013-03-13T13:12:46.167 回答