我有一个脚本,test.php
使用以下HTML& jQuery的。
基本上,如果用户加载此脚本,我想用随机字符串填充输入字段。
但是,如果用户访问了test.php?id=
类型的网址,我不想填充此字段。
我如何使用现有代码执行此操作?
目前,当我运行下面的代码时,它会给我这个错误:
Uncaught ReferenceError: key is not defined at test.php:28
<input id="input_1_8" name="input_1_8" value="">
<script
src="https://code.jquery.com/jquery-3.2.1.js"
integrity="sha256-DZAnKJ/6XZ9si04Hgrsxu/8s717jcIzLy3oi35EouyE="
crossorigin="anonymous"></script>
<script type="text/javascript">
function makeid()
{
var text = "";
var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
for( var i=0; i < 5; i++ )
text += possible.charAt(Math.floor(Math.random() * possible.length));
return text;
}
var urlParams = new URLSearchParams(window.location.search);
var keys = urlParams.keys();
for (key of keys) {}
setTimeout(function() {
if (null === key) { // here is where I get my error!!
} else {
$('#input_1_8').val(makeid());
}
}, 3000);
</script>
答案 0 :(得分:1)
如果查询字符串存在与否,请使用以下简单的js代码执行您想要的操作。
grep -E 'even:(suspend|hold)count>0'
希望这有帮助。
答案 1 :(得分:1)
您正在引用&#34; key&#34;在初始化的for循环之外。此外,您的for循环未正确初始化。你在循环中寻找特定的键吗?如果是这样,我会设置一个外部变量到键值,这样你就可以在超时内引用..
function makeid() {
var text = "";
var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
for (var i = 0; i < 5; i++)
text += possible.charAt(Math.floor(Math.random() * possible.length));
return text;
}
var urlParams = new URLSearchParams(window.location.search);
var keysURL = urlParams.keys();
var keyVal = null;
for (var keyParam in keysURL) {
// Whatever conditional here..
if (true === true) {
keyVal = keyParam;
break;
}
}
setTimeout(function() {
if (null === keyVal) { // here is where I get my error!!
} else {
$('#input_1_8').val(makeid());
}
}, 3000);
&#13;
<input id="input_1_8" name="input_1_8" value="">
<script src="https://code.jquery.com/jquery-3.2.1.js" integrity="sha256-DZAnKJ/6XZ9si04Hgrsxu/8s717jcIzLy3oi35EouyE=" crossorigin="anonymous"></script>
&#13;
答案 2 :(得分:1)
您的代码逻辑工作正常,但是 您没有声明关键变量 您可以输入
var key;
或
for (var key in keys) {}