【问题标题】:Formfill in Javascript not working?Javascript中的表单填写不起作用?
【发布时间】:2010-03-05 15:20:20
【问题描述】:
var tagMatch;
    if (tagMatch = window.location.href.match(/\/questions\/ask\?tags=([^&]+)/)) {
       $(function() { 
         if (!$('#tagnames').val().length) {
         $('#tagnames').val(unescape(match[1].replace(/\+/g, ' '));
          }
     });
     }

大家好,这段JS代码应该匹配/questions/ask?tags=some-tag形式的URL的后半部分,然后将包含在tags=之后的部分URL中的文本插入到id为@的文本框中987654324@。我究竟做错了什么?我怎样才能解决这个问题?

我还在学习,所以如果你想告诉我如何修复我的正则表达式或其他任何东西,请这样做!

【问题讨论】:

  • 为什么要将文档就绪事件放在语句中?
  • 我还在学习,你会把它放在哪里?
  • 看我的回答 - 我仍然认为你只是把变量名弄错了tagMatch vs match
  • 你能在 if 语句中识别 tagMatch 中存储的内容吗?
  • 没有。我该怎么做?

标签: javascript jquery jquery-selectors


【解决方案1】:

我认为错误在于这一行

if (!$('#tagnames').val().length)

length 将返回一个数字并根据数字检查它。

类似

if ($('#tagnames').val().length > 0)

我认为没有必要在 if 语句中准备好文档。这不是更好吗。

 $(function() { 
       var tagMatch;
       if (tagMatch = window.location.href.match(/\/questions\/ask\?tags=([^&]+)/)) 
       {
           if ($('#tagnames').val().length > 0)
           {
               $('#tagnames').val(unescape(match[1].replace(/\+/g, ' '));
           }
       }
    });

【讨论】:

  • 是的,如果 #tagnames 有效,$('#tagnames').val().length 总是返回 >= 0 但我不确定这是这里唯一的问题。
  • 嘿亚历克斯,不是要挑剔,但如果是 tagMatch 与匹配变量名......我的不应该是“正确”的答案吗? :)
  • 是的,对此我表示感谢,但 rahul 为他的回答付出了更多努力。
【解决方案2】:

无需过多研究字符串匹配的工作原理......

您似乎正在定义和设置一个名为 tagMatch 的变量,但随后您正在使用一个名为 match 的变量来设置值。

是这个问题吗?

更新:道歉 - 你的正则表达式是正确的 - 我误读了意图:)

【讨论】:

  • 如果您有第二个查询字符串变量,它是否有效?没有一个?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-11-07
  • 1970-01-01
  • 1970-01-01
  • 2020-12-31
  • 2013-02-19
  • 2013-02-12
  • 1970-01-01
相关资源
最近更新 更多