我正在尝试将Javascript变量传递给HTML文本框,并希望该变量在传递给onclick函数之前可见。
首先,我将php变量(从另一个脚本传递)编码为javascript变量:
var id = <?php echo json_encode($id);?>
然后我尝试尝试使文本框的值等于javascript id变量:
<input type="text" id="getfromweb" value="">
<input type="button" value="Get From Web..." onclick="getFromWeb(document.getElementById('getfromweb').value = id)"><br>
但是我没有看到id var显示为文本框的值?
我认为解决方法是将id作为函数中的值传递:
onclick="getFromWeb(document.getElementById('getfromweb').value = id)
但是这不起作用,即变量没有出现在文本框中。
getfromweb函数从这样开始:
function getFromWeb(webid)
{
var webid=document.getElementById('getfromweb').value;
var http_request=false;
http_request = new XMLHttpRequest();
http_request.open('GET', 'getfromweb.php?id='+webid, false);
任何帮助表示感谢。
答案 0 :(得分:1)
这里有很多奇怪的东西。
webid
中的getFromWeb(webid)
参数时会丢失var webid=document.getElementById('getfromweb').value;
onclick="getFromWeb(document.getElementById('getfromweb').value = id)"
只有在您点击按钮时才会调用此代码。 onclick
的意思是什么。 document.getElementById('getfromweb').value = id
直到您单击它才会运行,即使您在单击它之前表示要显示它。在点击之前,它不会对页面加载做任何事情。但是为什么不首先使用php在html值中回显呢?像这样:
<input type="text" id="getfromweb" value="<?php echo $id ?>" />
然后你可以简化这个:
<input type="button" value="Get From Web..." onclick="getFromWeb();" />
并删除此参数:
function getFromWeb()
{
var webid=document.getElementById('getfromweb').value;
...
}