0

非表示タイプのテキストボックスがあります。テキストボックスの名前を取得し、ドロップダウンのIDとして設定しました。

次に、ドロップダウンを検証する必要があります。これは私がやったことです。

     <input type="hidden" value="100" name="test1_season_1">

    $('input[value="100"][type="hidden"]').each(function(){
         myString = $(this).attr('name');

         $("#formId").validate({
            rules: {
                myString: "required",
                },
             messages: {
                 mystring: "<br>Please select from dropdown.",       
             }
         });
    });

しかし、検証メッセージは表示されていません。

そのため、テキストボックスに直接名前を付けて検証を確認しましたが、今回は機能します。

         $("#formId").validate({
            rules: {
                test1_season_1: "required",
                },
             messages: {
                 test1_season_1: "<br>Please select from dropdown.",       
             }
         });

私の問題は、テキストボックス名が動的に生成されるたびに、直接指定できないことです。非表示タイプのテキストボックスが2つある場合は、2つのドロップダウンを生成する必要があります。

これを助けてください。

前もって感謝します。

4

2 に答える 2

0

オブジェクトを初期化するときに(とにかく)プロパティを設定するためのキーとして変数の値を使用することはできません。オブジェクトを初期化するための構文は引用符なしのキーを受け入れるので、実際に言っているのはキーを使用してプロパティを作成することであり、必要なのはキーが変数myStringの値であるプロパティを作成することでした。myString

代わりに次を試してください。

myString = $(this).attr('name');
alert(correctString); // not entirely sure about this line - where does correctString come from?

var rules = {};
rules[myString] = "required";

var messages = {};
messages[myString] = "<br>Please select from dropdown.";

$("#formId").validate({
    rules: rules,
    messages: messages
});

非表示の各入力を呼び出す代わりに.validate()、すべてのルールとメッセージを含む2つのオブジェクトを作成してから.validate()、1回呼び出すことができます。

var rules = {};
var messages = {};

$('input[value="100"][type="hidden"]').each(function() {
    myString = $(this).attr('name');
    rules[myString] = 'required';
    messages[myString] = '<br>Please select from dropdown.';
});

$("#formId").validate({
    rules: rules,
    messages: messages
});
于 2012-08-01T10:16:02.153 に答える
0

入力にaを与え、classクラスルールを使用します

$.validator.addClassRules("myvalidator", { 
   required: true, 
   message: "<br>Please select from dropdown." 
});

<input type="hidden" value="100" class="myvalidator" name="test1_season_2">
<input type="hidden" value="100" class="myvalidator" name="test1_season_3">
<input type="hidden" value="100" class="myvalidator" name="test1_season_999">

addClassRulesここのドキュメント

于 2012-08-01T10:12:21.283 に答える