0

HTML

<form action="#" id="MyForm" name="MyForm">
<table id="tblData">
    <tr>
        <td>
            <label >
                A</label>
            <input id="A" name="A" type="text" value="" />
        </td>
    </tr>
    <tr>
        <td>
            <span id="submitButton">Next</span>
        </td>
    </tr>
</table>
</form>

JQuery

$(document).ready(function () {
    $('#submitButton').validate(
    {
        rules: {
            A:
            {
                required: false,
                range: [1, 100]
            }
        },
        messages: {
            A: {
                range: jQuery.validator.format("Please enter a valid range.")
            }
        }
    });
});

スクリプト ファイル

<script src="/Scripts/jquery-1.9.1.js" type="text/javascript"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.0/jquery.min.js" ></script>
<script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.11.1/jquery.validate.js"
    ></script>

質問

HTML に注目すると、span があります。入力ボタンではなく、このスパンをクリックしてフォームを検証したい。問題は、検証が行われていないことです。どうやってやるの?

JSFiddle リンク

4

3 に答える 3

2
$(document).ready(function () {

    $("#submitButton").click(function(){
        $('#MyForm').submit();
    });

    $('#MyForm').validate({
        rules: {
            A: {
                required: true,// here set false if not require as you did it in your question
                range: [1, 100]
            }
        },
        messages: {
            A: {
                range: jQuery.validator.format("Please enter a valid range.")
            }
        }
    });

});

デモ と参照を参照してください

于 2013-09-13T06:54:40.503 に答える
-1

フィドルを更新しました。リンクで答えを確認できます

コードを次のように変更しました。

$(document).ready(function () {
$('#submitButton').click(function () {


    $("#MyForm").validate({
        rules: {
            A: {
                required: false,
                range: [1, 100]
            }
        },
        messages: {
            A: {
                range: jQuery.validator.format("Please enter a valid range.")
            }
        }
    });
  });

});
于 2013-09-13T06:50:04.780 に答える