javascript jquery验证逻辑

时间:2013-03-29 23:52:15

标签: javascript jquery validation

我今天有一个逻辑问题。我有一个基于.load的表单,它运行得很好。我有点坚持的是根据加载的表单区域的位置加载标题。 我的“下一步”按钮工作正常,因为我已经加载了每个区域的验证。例如

$('#next').click(function()
{
    if(question_pos==0)
    {
        question_pos+=1;
        $("#title_area").load("bl_forms.jsp #area_title1");
        showContent(question_pos,"right");
        return true;
    }
});

现在我需要的是后退按钮,根据位置加载正确的标题。 这是我的后退按钮,

$('#back').click(function()
{
    if(question_pos>=2 && question_pos<=25)
    {
        question_pos-=1;
        showContent(question_pos,"left");
        return true;
    }
});

我需要从区域pos 1-2加载标题1,从区域pos 3-7加载标题2,从区域pos 4-6加载标题4,依此类推。我只需要一个如何添加标题加载到后退功能的示例。 如果混淆了,

if(question_pos>=2 && question_pos<=25)
{

是否只是为了防止后退按钮更改位置在pos 2之前和位置25之后。

/*New edit*/

添加回调怎么样?

之类的东西
$('#back').click(function(){
        if(question_pos>=2 && question_pos<=2){
        question_pos-=1;
        showContent(question_pos,"left");
                   ('#back').callback(function(){
   if(question_pos<=1 && question_pos>=2){
   $("#title_area").load("bl_forms.jsp #area_title1");
 }else if (question_pos<=3 && question_pos>=7){
   $("#title_area").load("bl_forms.jsp #area_title2");
 }else if (question_pos<=8 && question_pos>=10){
   $("#title_area").load("bl_forms.jsp #area_title4");
 }else if (question_pos<=11 && question_pos>=12){
   $("#title_area").load("bl_forms.jsp #area_title4");
 }else if (question_pos==13 || question_pos<=16){
   $("#title_area").load("bl_forms.jsp #area_title4");
 }else if (question_pos==17 || question_pos<=19){
   $("#title_area").load("bl_forms.jsp #area_title4");
 }else if (question_pos==20 || question_pos<=21){
   $("#title_area").load("bl_forms.jsp #area_title4");
 }else if (question_pos==22 || question_pos<=25){
   $("#title_area").load("bl_forms.jsp #area_title4");
 }

            }
});

也许某些东西允许一堆额外的if语句,或某些允许

的东西

2 个答案:

答案 0 :(得分:0)

 if(question_pos==1 || question_pos==2){
   $("#title_area").load("bl_forms.jsp #area_title1");
 }else if (question_pos==3 || question_pos==7){
   $("#title_area").load("bl_forms.jsp #area_title2");
 }else if (question_pos==4 || question_pos==6){
   $("#title_area").load("bl_forms.jsp #area_title4");
 }

答案 1 :(得分:0)

你可以尝试类似的东西:

var areas = [
    { start: 1, end: 2, page: '#area_title1' },
    { start: 3, end: 7, page: '#area_title2' },
    { start: 4, end: 6, page: '#area_title4' }
    // and so on...
];

for ( var i = 0, l = areas.length; i < l; i++ ) {
    var area = areas[i];
    if ( question_post >= area.start || question_post <= area.end ) {
        $('#title_area').load( 'bl_forms.jsp ' + area.page );
        break;
    }
}

通过这种方式,您只需更新您的页面数组,而循环永远不会更改。