Formfill在Javascript中不起作用?

Formfill在Javascript中不起作用?,javascript,jquery,jquery-selectors,Javascript,Jquery,Jquery Selectors,大家好,这个JS代码应该与表单/questions/ask?tags=some tag的URL的后半部分相匹配,然后将tags=之后的URL部分中包含的文本插入id为#tagnames的文本框中。我做错了什么?我怎样才能解决这个问题 我还在学习,所以如果您想告诉我如何修复我的正则表达式或其他任何东西,请执行无需过多研究字符串匹配的工作原理 您似乎正在定义和设置一个名为tagMatch的变量,但随后您使用了一个名为match的变量来设置值 这就是问题所在吗 更新:抱歉-您的正则表达式是正确的-我误

大家好,这个JS代码应该与表单
/questions/ask?tags=some tag
的URL的后半部分相匹配,然后将
tags=
之后的URL部分中包含的文本插入id为
#tagnames
的文本框中。我做错了什么?我怎样才能解决这个问题


我还在学习,所以如果您想告诉我如何修复我的正则表达式或其他任何东西,请执行

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

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

这就是问题所在吗


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

我认为错误在于这一行

var tagMatch;
    if (tagMatch = window.location.href.match(/\/questions\/ask\?tags=([^&]+)/)) {
       $(function() { 
         if (!$('#tagnames').val().length) {
         $('#tagnames').val(unescape(match[1].replace(/\+/g, ' '));
          }
     });
     }
length将返回一个数字,并对照该数字进行检查

差不多

if (!$('#tagnames').val().length)
我认为没有必要在if语句中放置documentready。这不是更好吗

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

是的,如果#标记名是有效的,
$(“#标记名”).val().length
始终返回>=0,但我不确定这是唯一的问题。嘿,Alex,我不想挑剔,但如果是标记匹配vs匹配变量名。。。我的答案不应该是“正确”的吗是的,我为此感谢你,但是拉胡尔在他的回答中付出了更多的努力。你为什么要把准备好文件的活动放在声明中?我还在学习,你会把它放在哪里?看我的答案-我仍然认为你只是把变量名弄错了
tagMatch
vs
match
。你能在if语句中识别tagMatch中存储了什么吗?不。我该怎么做?如果你有第二个querystring变量,它会工作吗?没有?
 $(function() { 
       var tagMatch;
       if (tagMatch = window.location.href.match(/\/questions\/ask\?tags=([^&]+)/)) 
       {
           if ($('#tagnames').val().length > 0)
           {
               $('#tagnames').val(unescape(match[1].replace(/\+/g, ' '));
           }
       }
    });