0

私はいくつかのフィールドが動的に追加されるフォームに取り組んでいます。これらの入力フィールドにはSpry検証もあり、検証後にフォームが送信されます。必要でない場合は、動的フィールドを削除することもできます。jqueryを使用してそのフィールドを削除し、フォームで使用できなくなりましたが、同じフォームを実行しても送信ボタンを使用して送信できません。

javascript form.submit() 関数を使用してフォームを送信しようとしましたが、フォームは送信されましたが、ボタン変数を受信できませんでした。

では、使用できないフィールドで spry 検証チェックを無効にするにはどうすればよいですか。


うまく機能する返信をありがとうございます。spryチュートリアルの参照を提案してください:)

さらに、以下を使用してspry検証を適用するように依頼したい!

var sprytextfield1 = new Spry.Widget.ValidationTextField("sprytextfield_", "none", {minChars:5, maxChars:10});

しかし、私は sprytextfield1 を破壊するだけですか? として使用するのが良いですか、それとも他の方法を使用する必要があります!

また、複数のフィールドに実装する方法についても言及しています...いくつかの選択フィールドもあります!

4

1 に答える 1

1

削除される要素への参照がある場合、Spry 検証ウィジェットには destroy() メソッドがあります。

次のコードは、これを単純な方法で行う方法を示しています。

<!DOCTYPE html>
<html>
<head>
<title>Notifications</title>
<script src="SpryAssets/SpryValidationTextField.js" type="text/javascript"></script>
<link href="SpryAssets/SpryValidationTextField.css" rel="stylesheet" type="text/css">
<script>

function clearValidation(){
    if(sprytextfield1){
        sprytextfield1.reset();
        sprytextfield1.destroy()
    }
}

function reapplyValidation(){
    sprytextfield1 = new Spry.Widget.ValidationTextField("sprytextfield1", "none", {minChars:5, maxChars:10});
}

</script>
</head>
<body>

<form name="form1" method="post" action="">
    <label for="sample"></label>
    <span id="sprytextfield1">
    <label for="myField"></label>
    <input type="text" name="myField" id="myField">
    <span class="textfieldRequiredMsg">A value is required.</span><span class="textfieldMinCharsMsg">Minimum number of characters not met.</span><span class="textfieldMaxCharsMsg">Exceeded maximum number of characters.</span></span>
<input type="submit" name="submit" id="submit" value="Submit">
    <input type="button" name="clear" id="clear" value="clear" onclick="clearValidation();" >
    <input type="button" name="reapply" id="reapply" value="reapply" onclick="reapplyValidation();" >
</form>
<script type="text/javascript">
var sprytextfield1 = new Spry.Widget.ValidationTextField("sprytextfield1", "none", {minChars:5, maxChars:10});
</script>
</body>
</html>

このページが検索するのと同じ場所に Spry ファイルがあると仮定すると、ブラウザーでページをロードするときに、すぐに送信ボタンをクリックすると、検証メッセージが表示されます。クリア ボタンをクリックすると、検証が削除されます (検証メッセージをクリアするために reset() 呼び出しも追加しましたが、フィールドとその検証メッセージ ラッパーがページから削除された場合、その部分は必要ない場合があります)。次に、送信ボタンをクリックすると、ページが適切に送信されます。ページを読み込んだ場合は、[送信] をクリックし (検証メッセージが表示されます)、[クリア] ボタンをクリックして (検証メッセージもクリアします)、[再適用] ボタンをクリックします。次に、送信ボタンに検証が表示されます。

于 2011-09-18T16:48:55.793 に答える