我该如何扩展这个?

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 中实际存在的任何代码替换它。

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

【讨论】:

以上是关于我该如何扩展这个?的主要内容,如果未能解决你的问题,请参考以下文章

我可以扩展我的div,但我该如何缩小它?

Mysql PHP扩展卸载! PHP7中显示错误我该如何解决? [重复]

你如何从 Laravel 的包中扩展视图?

如何扩展存储在变量中的 jQuery 选择器?

如何保存带有 chrome 扩展名的页面

如何在Windows中安装PCNTL扩展?