2011-08-15 11 views
0

フォームをクリックしてフォームにフィールドを追加できるフォームがあります。フィールドをクリックするとそのフィールドの値を検証する必要があります。Javascriptのバリデーション

私はそれを2回クリックしてフィールドの2つの別々のセットを取得し、私はそれが100の保存時に等しいことを確認するために回転%が必要と言う。

私はこの関数を保存時に有効にするために入れました。それ以外のフォームを編集する場合を除いてすべてが機能します。
フィールドがオンかどうかを確認して確認するのが最も簡単な方法を確認しようとしていますので、フィールドを確認することができます。ここで

は私のコードです:

function audit() 
{ 
    var totalsum = 100; 
    $('[name="rotation\\[\\]"]').each(
     function() 
     { 
     totalsum -= ($(this).val() * 1); 
     } 
    ) 
    if(totalsum > 0){ 
     alert("Your rotation % does not equal 100"); 
     return false;} 
    return true;} 

$('.add_creative img').click(
function(){ 
    $.post('/json/ad_creative/', 
    { action: "add_creative", this_brand_id: $("[name='this_brand_id']").val(), adtype: $('.new_run [name="adtype"]').val()}, 
    function(data){ 
     if(data.result){ 
      $('.add_creative').append(data.html) 
      }  
     }, 
     'json' 
     ) 

答えて

0

あなたはfalseに設定されている最初のフラグを持つことができます。 ie:haveFields = falseです。ユーザーがフィールドを追加すると、そのフィールドに基づいて検証を実行できます。

+0

これらはデータベース駆動型のフィールドなので、同じ時間に起こることはありませんが、感謝します。 –

0

は、フォームに属するフィールドのみを選択し、何かのように:

$('#id_of_the_form input[name^="rotation"]') 

これは、ID「id_of_the_form」ここ

詳細情報とフォームの回転を開始し、入力フィールドから選択します http://api.jquery.com/category/selectors/

0

I二tuuk79

@しかし、私はPUになりますjqueryのセレクタについてそこには、開発者サイトのドキュメントが本当に良いものではないということがあります。これは、Validateを学ぶときに使用したものです。私はまた、あなたがそれを学ぶと、あなたの人生をずっと簡単にすることができるので、あなたは真剣にあなたが妥当性チェックに固執することを強く勧めます!

http://www.ferdychristant.com/blog//articles/DOMM-7LZJN7 //記事詳細はを使用してください。 http://www.ferdychristant.com/blog//pages/jQuery%20validation%20code
http://randomactsofcoding.blogspot.com/2008/10/starting-with-jquery-how-to-write.html http://docs.jquery.com/Plugins/Validation/Methods/required#dependency-expression

情報の驚くべき深さは、単純でもあり... http://docs.jquery.com/Plugins/Validation ...あなただけのそれをすべてクリックしなければならない!:)ここで

2

は実施例である:http://jsfiddle.net/maniator/YW4Sv/

(あなたには、いくつかの作業コードを持っている場合、私はあなたのニーズに合わせて拡張することができます)

JS:

function audit() { 
    var totalsum = 100; 
    $('.rotation').each(function() { 
     totalsum -= ($(this).val() * 1); 
    }) 
    if (totalsum != 0) { 
     alert("Your rotation % does not equal 100"); 
     return false; 
    } 
    return true; 
} 


$('.add').click(function(){ 
    $(this).before($('<input>', {class: 'rotation', name:'rotation[]'})); 
    return false; 
}); 

$('#theForm').submit(audit); 

HTML:

<form id='theForm'> 
    <button class='add'>ADD FIELD</button><br/> 
    <button>SUBMIT</button> 
</form> 
+0

cool。私はjsfiddleの例が気に入っています:) – memical

+0

私の問題は非常に似ていますが、私が問題を抱えているのは、フォームを編集するときにこの監査機能を実行し、変数を設定していて、警戒。私は回転フィールドがない場合、それが関数を渡していることを確認しようとしているし、それを実行することを確認してください。 –

+0

@MikeJonesはあなたが話していることの例をjsfiddleやペーストに載せることができますか? – Neal

関連する問題