2011-09-12 46 views
1

我有一个使用jQuery Validate的多页表单。jquery validate

在第1页上,我有一个选择下拉框,当有人选择某个东西时,它会为同一页上的其他输入字段加载规则。我的问题是,一旦用户提交并转到第2页,并决定他需要更改某些内容,他会回到第1页,并且某些规则未被应用,因此唯一的方法是重新选择选择重新申请这些JQuery验证规则..

我需要确保这些规则正在被重新应用在重新加载页面...

我希望这是有道理的,并希望有人有一个简单快捷的答案。

+0

需要一些代码....无论是使用cookie,或者使用GET属性的规则集存储? –

回答

0

你可以在一个PHP会话保存所选的选项第2页:

session_start(); 
$_SESSION['yoursession'] = $_POST['option']; 

在第1页添加,节省会议在JavaScript的变量。 使用json_encode()正确逃避它:

<script type="text/javascript"> 
    <?php echo 'var option = "'.json_encode($_SESSION['yoursession']).'";'; 
</script> 

所以,如果你去到会话设置与已第1页上选择的选项2页,如果你回到会话的内容保存在变量中。

0

ASP.NET MVC and partial client side validation

看看吧。

您可以通过编程方式调用$('#myform').validate()$('#myform').valid()来确定表单是否有效并转到下一步。

$(".stepButton").live("click", function() { 
    if (isValid(this)) { 
     // code to proceed to next step 
    } 
}); 

function isValid(el) { 
    var $thisform = $(el).parent().parent(); 
    $thisform.validate(); 
    return $thisform.valid(); 
} 
0

您应使用2种形式,每种形式都有一个不同的id,并为每个形式声明一组验证规则。 尝试你的代码适应这种:

var validationRules1 = { 
     rules: { 
      ... 
     }, 
     messages: { 
      ... 
     } 
    }; 

    var validationRules2 = { 
     rules: { 
      ... 
     }, 
     messages: { 
      ... 
     } 
    }; 

    var form1 = $('#form1'); 
    form1.submit(function() { 
     form.validate(validationRules1); 
     return form1.valid(); 
    }); 


    var form2 = $('#form2'); 
    form2.submit(function() { 
     form.validate(validationRules2); 
     return form2.valid(); 
    }); 

希望这有助于