2011-09-17 5 views
0

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

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

だから、使用できないフィールドのspry検証チェックを無効にするにはどうしたらいいですか?仕事だけでなく ザッツお返事のための


おかげで元気なチュートリアル:)

のための任意の参照を提案してください。また、私は、私はちょうど、以下を使用して元気検証を適用する をお願いしたいです!

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

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

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

答えて

1

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

次のコードは、些細な方法でこれをやって示しています

ブラウザでページを読み込むときに、このページは、それらを探して、あなた場合は、同じ場所でのSpryのファイルを持っていると仮定すると
<!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> 

すぐに送信ボタンをクリックすると、検証メッセージが表示されます。クリアボタンをクリックするとバリデーションが削除されます(また、バリデーションメッセージをクリアするためのreset()呼び出しが追加されましたが、フィールドとバリデーションメッセージラッパーがページから削除されていれば、その部分は不要です)。その後、送信ボタンをクリックすると、ページが正しく送信されます。ページをロードしたら、submit(検証メッセージが表示されます)をクリックし、clearボタン(検証メッセージもクリア)をクリックして、Reapplyボタンをクリックします。次に、送信ボタンに検証が表示されます。

関連する問題