我遇到了一点困难。我正在尝试在循环上运行一个变量,以便它可以更改循环。这是我目前拥有的代码。
<FORM NAME="myform" ACTION="" METHOD="GET">
<INPUT TYPE="text" NAME="inputbox" id="Variable"><P>
</FORM>
<script type="text/javascript">
document.getElementById("Variable").value = i;
var i=5;
for (i=0;i<=5;i++)
{
document.write(" " + i);
document.write("<br />");
}
</script>
我试图从表单中调用文本框中的文本来定义 var i。我还想指出,我不是 HTML 大师,如果您发现我做错了,请随时告诉我这是不可能的。
最佳答案
我认为你的意思是这样的:
var count = parseInt(document.getElementById("Variable").value, 10);
var i;
for (i = 0; i < count; ++i) {
// ...do something...
}
它的作用:
- 通过 ID 查找元素(您已经拥有该 ID):
document.getElementById("Variable')
。 - 检索其
value
属性的值,该属性是一个字符串。 - 通过
parseInt
使用十进制(而不是八进制或十六进制)将字符串转换为数字。 - 从零(含)到该数字(不含)循环。
请注意,您不能在页面的主解析(初始加载)之后使用 document.write
,并且您可能不想使用表单字段中的值在页面的主要解析完成之前,因此您可能不会在此处执行 document.write
操作。您可以设置元素的innerHTML
,类似的东西。
关于我的“...在主解析之后不能使用 document.write
...”:从技术上讲,您可以,但您完全可以替换页面而不是仅仅添加内容。
关于我的“...并且您可能不想在主解析之前使用表单字段中的值...完成...”:您可以,不过,只要表单字段位于页面标记中的脚本上方即可。我的字面意思是您可能不想想要,大概您希望用户首先输入一些值。
<小时/>更新:这是一个更完整的示例,可以使用实时副本:
var element, value, count, i;
element = document.getElementById("Variable");
if (!element) {
display("Element 'Variable' not found.");
}
else {
value = element.value;
count = parseInt(value, 10);
if (isNaN(count)) {
display("'" + value + "' is not numeric");
}
else {
for (i = 0; i < count; ++i) {
display("Loop " + i);
}
}
}
function display(msg) {
var p = document.createElement('p');
p.innerHTML = msg;
document.body.appendChild(p);
}
Live copy , display
函数显然是您实际想要执行的任何操作的占位符。
关于javascript - 如何调用文本框中的文本以在 javascript 中设置变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5790546/