我有一个表格需要在其他页面继续,当我尝试获取输入的值时,js不返回任何内容!
形式:
<form id="myf" name="myf" method="POST" action="folder/nextstep.php">
<label for="place">Name: </label>
<input id="place" name="place" type="text" onkeyup="getfind('result_place','folder/nextstep.php','place');"><br>
<div id="result_place"></div>
<script type="text/javascript">
var values = new Array();
values[0] = new Array();
values[0][0] = "place";
values[0][1] = document.getElementById("place").value;
</script>
<input id="submit" name="submit" type="button" onclick="getfind('folder/nextstep.php',values);" value="Add">
</form>
和其他文件:
function getfind() {
var xmlobj = ajax();
if (arguments.length == 3) {
//something here
} else if (arguments.length == 2) {
var thepage = arguments[0];
var thevalues = arguments[1];
var theparam = "";
for (var i in thevalues) {
theparam += thevalues[i][0] + "=" + thevalues[i][1] + "&";
alert(theparam);
}
但请注意这样的事情:
地方=安培;输入2 =&安培;和......
并且值为空! 为什么呢?
答案 0 :(得分:0)
您正在加载页面时初始化values
。
如果要使用输入的当前内容,则需要在单击时执行此操作。
最简单的选择可能是把它放在一个函数中:
function getvalues()
{
var values = new Array();
values[0] = new Array();
values[0][0] = "place";
values[0][1] = document.getElementById("place").value;
return values;
}
然后使用values
代替getvalues()
:
onclick="getfind('folder/nextstep.php',getvalues());"
答案 1 :(得分:0)
问题很可能是在调用函数时没有获取值。在输入任何内容之前,将评估尝试获取它们的代码。如果将该部分嵌入到getfind()函数中,它应该可以工作。
var values = new Array();
values[0] = new Array();
values[0][0] = "place";
function getfind() {
var xmlobj = ajax();
if (arguments.length == 3) {
//something here
} else if (arguments.length == 2) {
var thepage = arguments[0];
var thevalues = arguments[1];
var theparam = "";
for (var i = 0; i < values.length; i++) {
// get latest values
thevalues[i][1] = document.getElementById(thevalues[i][0]).value;
theparam += thevalues[i][0] + "=" + thevalues[i][1] + "&";
alert(theparam);
}
答案 2 :(得分:0)
执行脚本时,似乎元素place
元素尚未就绪。
将您的代码放入
window.onload=function(){
//your code here
}
您的代码应为
<script type="text/javascript">
window.onload=function(){
var values = new Array();
values[0] = new Array();
values[0][0] = "place";
values[0][1] = document.getElementById("place").value;
}
</script>