2011-08-15 101 views
0

我有一个表单,人们可以点击并添加字段到表单,我需要让它验证这些字段中的值,如果它被点击。Javascript验证

所以说我点击它两次,并获得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开始的标志。即:haveFields = false。一旦用户添加了一个字段,那么这将是真实的,然后您可以基于此进行验证。

+0

这些是数据库驱动的领域,所以不会在同一时间发生,但谢谢。 –

0

选择只属于你的窗体中的字段,是这样的:

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

这将选择与id为“id_of_the_form”

这里更多信息的形式旋转启动输入字段有关jQuery选择: http://api.jquery.com/category/selectors/

0

我第二@ tuuk79

但我会PU在那里,开发人员网站上的文档确实不是那么好...这是我在学习验证时使用的。我也衷心敦促你坚持验证,因为一旦你了解它,它会让你的生活变得如此简单!

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

很酷。我喜欢jsfiddle示例:) – memical

+0

Mine与此非常相似,但是我遇到的问题是,当他们编辑表单时,它将运行此审计功能,并且由于我设置了变量并说出它是否为!= 0,警报。如果没有旋转字段,并且确保通过它,我试图确保它传递函数。 –

+0

@MikeJones你可以举一个你正在谈论的jsfiddle或粘贴的例子吗? – Neal