【问题标题】: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 可能会反过来咬您一口。这是一个很棒的工具,但它可以为你做很多你应该学会为自己做的事情,并防止很多你应该犯(并从中学习)至少一次的错误。

标签: javascript jquery forms field


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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-13
      • 2010-09-21
      相关资源
      最近更新 更多