検証して選択したプラグインを一緒に使用しようとしています。選択ボックスの検証中に問題が発生しました。同様の質問を見つけました「選択した」プラグインでjQuery検証を使用するにはどうすればよいですか?そしてChosen.jsとjqueryを検証しますが、ソリューションをコードにインポートする方法が見つかりませんでした:
<form class='myform' id='producteditform'>
<input type='hidden' value='<? echo $row['id']; ?>' name='pkedit' id='pkedit'>
<input type='hidden' value='save' name='operation' id='operation'>
<p><label for='nameedit'>Product Name</label><em>*</em><input id='nameedit' name='nameedit' value='<? echo $row['pname']?>'/></p>
<p><label for='unitedit'>Unit</label><em>*</em><?
$query="select * from units";
$result=$mysqli->query($query);
if($result->num_rows==0)
echo "<a href='units.php?operation=insert'>No unit found. Please define a unit first</a>";
else{
echo "<select class='chosen' id='unitedit' name='unitedit'>";
while($row=$result->fetch_assoc())
echo "<option value='".$row['id']."'>".$row['name']."</option>";
echo "</select>";
}
$mysqli->close();
?></p>
<p><a class='button' class='button' id='saveedit'>Save</a>
<a class='button' id='canceledit' onclick='f()' >Cancel</a></p>
</form>
jqueryコード
$("#save").click(function () {
if($("#producteditform").validate({
ignore: [],
rules: {
nameedit: {
required: true,
maxlength:100
},
unitedit:{
required: true,
}
}
}).form()
)
{
// do sth
})
}
}
htmlレンダリング出力
<form class="myform" id="productform" novalidate="novalidate">
<input type="hidden" value="insert" name="operation" id="operation">
<p><label for="name">Product Name</label><em>*</em><input type="text" name="name" id="name"></p>
<p><label for="unit">Unit</label><em>*</em><select class="chosen chzn-done" id="unit" name="unit" style="display: none;"><option value="">please choose..</option><option value="1">kgg</option></select><div id="unit_chzn" class="chzn-container chzn-container-single" style="width: 200px;" title=""><a href="javascript:void(0)" class="chzn-single" tabindex="-1"><span>please choose..</span><div><b></b></div></a><div class="chzn-drop" style="left: -9000px; width: 198px; top: 24px;"><div class="chzn-search"><input type="text" autocomplete="off" style="width: 163px;"></div><ul class="chzn-results"><li id="unit_chzn_o_0" class="active-result result-selected" style="">please choose..</li><li id="unit_chzn_o_1" class="active-result" style="">kgg</li></ul></div></div></p>
<p><a class="button" id="save">Save</a>
<a class="button" id="cancel" onclick="f()">Cancel</a></p>
</form>
class ='chosen'を削除すると、保存ボタンをクリックするとすべてが正常に機能します。そうしないと、エラーが発生します。UncaughtError:検証に失敗しました。名前が割り当てられていない要素が見つかりました。要素のリファレンスについては、コンソールを参照してください。