我该如何扩展这个?
Posted
技术标签:
【中文标题】我该如何扩展这个?【英文标题】:How can I scale this? 【发布时间】:2010-09-20 06:26:45 【问题描述】:我有一个几页长的表格。为了遍历表单,我所做的就是显示和隐藏容器 div。最后一页是提交前的确认页面。它获取表单的内容并将其布局,以便用户可以看到他/她刚刚填写的内容。如果他们点击其中一个,它将带他们回到他们所在的页面 (#nav1~3),专注于该字段,并让他们在需要时输入新值。
使用 jQuery,我为每个字段/radio/check/select/textarea/whatever 创建了变量。如果我的方法看起来很傻,请告诉我,但基本上,这个方法已经可以正常工作了,但我正在尝试缩放它,我不知道怎么做,因为我真的不知道是什么我正在做。想法?
var field1 = '' + $('input#field-1').val() + ''; $('#field1-confirm').html(field1); var field2 = '' + $('input#field-2').val() + ''; $('#field2-confirm').html(field2);以此类推,有field3、4、5~25等
如果你能帮忙用非程序员的术语解释,我会永远爱你。
【问题讨论】:
在您不真正了解 javascript 时使用 jQuery 可能会反过来咬您一口。这是一个很棒的工具,但它可以为你做很多你应该学会为自己做的事情,并防止很多你应该犯(并从中学习)至少一次的错误。 【参考方案1】:我先介绍一下数组:this one 对于初学者来说看起来相当不错。
开始使用数组和循环,你会得到很好的服务。
【讨论】:
【参考方案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 中实际存在的任何代码替换它。
有很多方法可以解决这个问题。一步一步来。
【讨论】:
以上是关于我该如何扩展这个?的主要内容,如果未能解决你的问题,请参考以下文章