1

登録フォームを作成しましたが、フィールドにnull検証を入れようとしています。すべてのフィールドは、次のように1つのテーブル内の場所です。

<table border="0" cellspacing="5" width="100%">
        <tr>
            <td width="50%" valign="top">
                <span id="ctl00_PageBody_lblFname">Prénom</span>
                <strong><font color="#FF0000">*</font></strong><br />
                <input name="ctl00$PageBody$txtFname" type="text" id="ctl00_PageBody_txtFname" rel="First Name" />

                <br />

                <span id="ctl00_PageBody_lblLname">Nom</span>
                <strong><font color="#FF0000">*</font></strong><br />
                <input name="ctl00$PageBody$txtLname" type="text" id="ctl00_PageBody_txtLname" rel="Last Name" />
             </td>
         </tr>
</table>

jqueryを使用して、すべてのテキストボックスを反復処理するジェネリック関数を作成しようとしています。テキストボックスが空の場合は、フィールド名を示すメッセージが表示されます。

        var Msg = "Please provide values for :";
        var nullFieldTracked = 'false';

        $('input[type="text"], select').each(function () {
            if (this.value == '' && this.hasAttribute("rel")) {
                nullFieldTracked = 'true';
                Msg += '\n - ' + $(this).attr('rel');
            }
        });
        if (nullFieldTracked == 'true') {
            alert(Msg);
            return false;
        }

コードは魅力のように機能します。フィールド名を読み取るために、テキストボックスに「rel」属性を追加しましたが、

要件に変更があり、このWebサイトを多言語で起動する必要があるため、リソースファイルから属性が読み取られ、asp.netは「rel」タグのメタリソースを作成しないので、考えています。最も近いスパンからフィールド名を読み取ることはできますが、追跡することはできません。

親切にJqueryを手伝ってください。

よろしくお願いします。

4

3 に答える 3

1

最も近いスパンから値を取得するには

$(this).prevAll("span").first().text()
于 2012-06-21T13:23:11.937 に答える
0

.netのテキストフィールドにデータ属性を追加できるかどうかわからない

はいの場合、スパンのIDdataを入力の属性に保存できます。各テキストフィールドは、スパンIDを次のようなデータ属性に保存する必要があります。

                <input name="ctl00$PageBody$txtFname" type="text" id="ctl00_PageBody_txtFname" rel="First Name" data-error-span = '#span1'/>

今あなたのJSに

$('input[type="text"], select').each(function () {
        if (this.value == '' && this.hasAttribute("rel")) {
            nullFieldTracked = 'true';
            Msg += '\n - ' + $($(this).data('error-span')).val();
        }
    });

別のオプションは、データ属性にエラーを保存することであり、JSは

Msg += '\n - ' +  $(this).data('error-message');

これも読みやすいように見えます

素晴らしいRails:)

于 2012-06-21T13:34:04.550 に答える
0

.closest() を使用すると、最も近いセレクター要素が得られます。

于 2012-06-22T04:36:22.033 に答える