我怎样才能扩展这个?

时间:2008-10-31 20:19:12

标签: javascript jquery forms field

我有一张长达几页的表格。要遍历表单,我正在做的就是显示和隐藏容器div。最后一页是提交前的确认页面。它采用表单的内容并将其放置出来,以便用户可以看到他/她刚刚填写的内容。如果他们点击其中一个,它会将他们带回到他们所在的页面(#nav1~3),专注于该字段,并让他们在需要时输入新值。

使用jQuery,我为每个字段/ radio / check / select / textarea /等做了变量。如果我的方法看起来很傻我请基本上,但这个方法已经正常工作了,但我正在努力扩展它我不知道如何因为我真的不知道是什么我正在做。想法?

  var field1 = '<a href="#" 
    onclick="$(\'#nav1\').click();$(\'input#field-1\').focus();" 
    title="Click to edit">' + 
    $('input#field-1').val() + '</a>';
    $('#field1-confirm').html(field1);

  var field2 = '<a href="#" 
    onclick="$(\'#nav1\').click();$(\'input#field-2\').focus();" 
    title="Click to edit">' + 
    $('input#field-2').val() + '</a>';
    $('#field2-confirm').html(field2);

依此类推,使用field3,4,5~25等

如果你能帮助用非程序员的术语解释,我会永远爱你。

2 个答案:

答案 0 :(得分:3)

我首先介绍数组:this one看起来相当不错,对于初学者来说。

绕着阵列和循环缠绕头部开始,你会得到很好的服务。

答案 1 :(得分:2)

不要太复杂,你可以创建一个处理重复内容的函数。我没有测试过这个,但你会明白这个想法:

function valField(fieldName,navName) {
    var output = '<a href="javascript://" onclick="$(\''+navName+'\').click();$(\'input#'+fieldName+'\').focus();" title="Click to edit">' + $('input#'+fieldName).val() + '</a>';
 $('#'+fieldName+'-confirm').html(output);
}

valField("field-1","nav1")
valField("field-2","nav1")
valField("field-293","nav3")

当你在Javascript上变得更好时,你可能只是做一个循环来处理所有这些“valField()”调用,或者你会写一些东西来检查你的表单,找到那里的东西并生成事件处理程序来粘合它们一起自动。这当然不是“n00bware”,但它给你一些思考的东西。

而不是在输出中使用它:

$(\''+navName+'\').click();

您可以使用导航选项卡的onclick中的实际代码替换它。

有很多方法可以解决这个问题。一步一步。