0

ユーザーが送信ではなくボタンのクリック時に情報を入力するときに、フォームを検証しようとしています。テキストボックス内のテキストがデフォルト値かどうかを検出するものを作ろうとしています。しかし、それは機能していません。

私はjqueryバリデーターにあまり詳しくありません。これが私がこれまでに持っているものです。

$(document).on("click", "#numexercisesbutton, #submitworkout",
                    function() { //adds exercises 
                        jQuery.validator.addMethod("notEqual", function(value,
                                element, param) {
                            return this.optional(element) || value !== param;
                        }, "Please choose a value!");

                        $("#addworkout").validate({

                            rules: {
                                weightinputboxes: {
                                    required: true,
                                    notEqual: "Enter Weight"
                                }
                            },
                            messages: {
                                weightinputboxes: {
                                    notEqual: "please enter a value"
                                } 

                            }

                            }

                        )




                        if ($("#addworkout").valid()) {

                            addexercises.call(this);
                        }
                    });

なぜ機能しないのかよくわかりません。この投稿をエミュレートしようとしていました: jQuery Validate: Not default value

HTML を編集:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>

<script type="text/javascript" src="/static/jquery-1.7.2.min.js"> </script>
<script type="text/javascript" src="/static/jquery-ui-1.8.21.custom.min.js"> </script>
<link rel="stylesheet" href="/static/jquery-ui-1.8.21.custom.css"  type="text/css">
<script type="text/javascript" src="/static/jquery.validate.js"> </script>
<script type="text/javascript" src="/static/jquery.validate.min.js"> </script>

<link rel="stylesheet" href="/static/addworkout.css"  type="text/css">
<script type="text/javascript" src="/static/addworkout.js"></script>




</head>
{% extends "masterpage.html" %}
{% block content %}
<body>
<form action="/submitworkout/" method="get" id="addworkout">
<div id="workoutentrycontainer">
<div id="exercisesthisworkout">
<p>Workout Date: </p>
<input type="text" class="required" id="workoutdate" name="workoutdate"> 
<p>Body Weight:</p>
<input type="text" class="textbox" id="weight" name="weight"> 
<p>How many unique exercises</p>
<input type="text" class="textbox required" id="numexercises" name="numexercises"> 
<input type="button" class="button"  value="Add" id="numexercisesbutton"> 
<input type="text" value="Enter Weight" name="weightinputboxes" class="required"> 

</div>
</div>


</form>
</body>
{% endblock %}
</html>
4

1 に答える 1

0
$("#..").validate({..})

フォーカスで動作し、箱の外に移動します。クリックとぼかしを組み合わせています。

コードでは、フローは次のようになります。

  1. ボタンをクリックすると、検証方法が有効になります。
  2. ボタンをクリックした後、テキストボックスに入力してフォーカスをボックスの外に移動すると、バリデーターが値を検証します。
于 2012-07-12T02:02:50.107 に答える