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