0

フォームの検証にjQueryValidationPluginを使用していますが、値フィールドではなくテキストフィールドを使用して選択ボックスを検証できません。

ここに私の状況:

[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が静的ではなく、常に変化することです。唯一の静的プロパティは、「Selectdate...」というテキストです。今私は何かをしたい:

"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 に答える