1

HTML、PHP、および jQuery を使用した単純な検索フォームがありますが、一部のフィールドが空で、バリデーターの警告が一瞬表示されても、フォームは送信されます。したがって、フォームを送信すると、「必須フィールド」に関する警告が表示され、とにかく送信されます。バリデーターはトリガーされていますが、フォームを停止していません。

HTML + PHP

<form action="dater.php" method="post" id="daterange">
<table width = "1000px">
<col width="250px" />
<col width="250px" />
<col width="250px" />
<col width="250px" />
<tr>
<? dateRangeView(); ?>
<td><input class="comment" type="text" name="groups" id="groupname"  placeholder="Enter group name"> *</td>
<td><input class="comment" type="text" name="employee" id="staffname" placeholder="Enter employee name"> *</td>
</tr></table>

*Leave these blank to view all<br>
<button class="mainButton" id="viewTimesheets" value="viewTimesheets" type="submit">View</button>

function dateRangeView() 
{

$query = "SELECT DISTINCT weekending FROM payroll_ts ORDER BY weeke DESC";
$result = mysql_query($query);
echo'<td><select id="startdate" class="infotable" name="startdate"><option value="">---- Start date ----</option>';
while ($row = mysql_fetch_array($result)) 
{
echo'<option value="'.$row{'weeke'}.'">'.$row{'weeke'}.'</option>';
}
echo'</select><br><td><select id="enddate" class="infotable" name="enddate"> <option value="">---- End date ----</option>';

$query = "SELECT DISTINCT weekending FROM payroll_ts ORDER BY weeke DESC";
$result = mysql_query($query);
while ($row = mysql_fetch_array($result)) 
{
echo'<option value="'.$row{'weeke'}.'">'.$row{'weeke'}.'</option>';
}

echo'</select><br></td>';

}

バリデータプラグインコード

<script language="javascript" type="text/javascript">

/*-------------Validator-------------*/

$.validator.setDefaults({
submitHandler: function() { alert("submitted!"); 
form.submit();}
});

$(function() {

$("#daterange").validate({
rules: {
startdate: "required",
enddate: "required"
},
messages: {
startdate: "required",
enddate: "required"
}
});
});

</script>

.on() を使用し、false を返します。onSubmit() および e.preventDefault(); めちゃくちゃになった構文を取得した可能性がありますが...これは私が使用しているプラ​​グインです... http://jqueryvalidation.org/validate/

4

2 に答える 2

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

    $("#daterange").validate({
    rules: {
    startdate: "required",
    enddate: "required"
    },
    messages: {
    startdate: "required",
    enddate: "required"
    }
   });

if($("#daterange").valid()) {
    // call your function;
    alert("submitted!");
}

});

于 2013-08-17T19:02:23.417 に答える