Javascript中的Formfill无法正常工作?

时间:2010-03-05 07:02:46

标签: javascript jquery jquery-selectors

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部分中包含的文本插入到文本框中标识#tagnames。我究竟做错了什么?我怎样才能解决这个问题?

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

2 个答案:

答案 0 :(得分:1)

不要过多地了解字符串匹配的工作原理......

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

这是问题吗?

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

答案 1 :(得分: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, ' '));
           }
       }
    });