通过javascript函数——元素don';当我通过id检查它们时是否不存在?
在使用ajax查询获取表单HTML后,我想通过jquery预先填充在模式视图中显示的表单字段。我通过document.getElementById调用预填充字段,以设置javascript函数中的值,并使用php代码生成的javascript函数中的值 问题是,即使在AJAX调用的回调函数导入了表单代码之后,我想要填充值的字段似乎也不存在。当我检查函数中是否存在元素以设置这些元素的值时,我看到一个空返回,因此元素不存在。发生什么事了 我可以看到,在html源代码中,php已将正确的表单值放入。但是,我没有看到显示的textarea值/innerHTML。相反,文本区域是空白的。文本区域有什么棘手的地方吗 谢谢你的建议 以下是Jquery/javascript:通过javascript函数——元素don';当我通过id检查它们时是否不存在?,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,在使用ajax查询获取表单HTML后,我想通过jquery预先填充在模式视图中显示的表单字段。我通过document.getElementById调用预填充字段,以设置javascript函数中的值,并使用php代码生成的javascript函数中的值 问题是,即使在AJAX调用的回调函数导入了表单代码之后,我想要填充值的字段似乎也不存在。当我检查函数中是否存在元素以设置这些元素的值时,我看到一个空返回,因此元素不存在。发生什么事了 我可以看到,在html源代码中,php已将正确的表单值放入。但
<script src="//code.jquery.com/jquery-1.10.2.js"></script>
<script src="//code.jquery.com/ui/1.11.3/jquery-ui.js"></script>
<script>
$(function() {
var dialog, form,
dialog = $( "#dialog-form2" ).dialog({
autoOpen: false,
height: 550,
width: 400,
modal: true,
});
$( "#create-user2" ).button().on( "click", function() {
showform();
dialog.dialog( "open" );
});
});
</script>
<div id="dialog-form2" style="background-color: white; border: 4px solid #f1f1f1; padding: 20px;" >
</div>
<div id="dialog-form2" style="background-color: white; border: 4px solid #f1f1f1; padding: 20px;" ></div>
<script>
function showform()
{
var xmlhttp;
if (window.XMLHttpRequest) {
xmlhttp=new XMLHttpRequest();
} else {
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
document.getElementById("dialog-form2").innerHTML=xmlhttp.responseText;
updateform();
}
}
xmlhttp.open("GET", "newinstructions.html");
xmlhttp.send();
}
function updateform()
{
document.getElementById('f1').value = '<?php echo $included;?>';
document.getElementById('f2').value = '<?php echo $id_bus;?>';
document.getElementById('f3').value = '<?php echo $deals_id;?>';
document.getElementById('f4').value = '<?php echo $_SESSION['token'];?>';
document.getElementById('details').innerHTML = '<?php echo $instructions1;?>';
document.getElementById('details').value = '<?php echo $instructions1;?>';
}
</script>
因此,函数updateform()具有正确的值,只有在创建表单本身后才应调用此函数。但是表单上没有显示任何值,在我提交表单后,POST数组中也没有显示任何值。有什么好处?谢谢您的建议。您想将插入的值填充到新的弹出模式或对话框中吗?? 请多解释一下你想做什么 如果iam正确,则不需要重新包含jquery代码,您可以在回调函数中执行此操作 ////编辑 您可以使用
.val()
设置或获取textarea
//编辑
在ajax中使用get,而表单使用POST
我想如果您在php中使用$\u GET
或$\u POST
,这会让人困惑
//
解决方案如下:
//
您需要选择textarea,而不仅仅是它的id,
您需要先选择最上面的父级,
然后是第二个顶级家长
例子:
如果你打开你的控制台,你会发现它是这样的(在弹出窗口出现后)
,
你所需要做的就是
var target_textarea=$(“#topid#secondtopid#details”)
然后使用target_textarea.val()代码>要将插入的值填充到新的弹出模式或对话框中吗??
请多解释一下你想做什么
如果iam正确,则不需要重新包含jquery代码,您可以在回调函数中执行此操作
////编辑
您可以使用.val()
设置或获取textarea
//编辑
在ajax中使用get,而表单使用POST
我想如果您在php中使用$\u GET
或$\u POST
,这会让人困惑
//
解决方案如下:
//
您需要选择textarea,而不仅仅是它的id,
您需要先选择最上面的父级,
然后是第二个顶级家长
例子:
如果你打开你的控制台,你会发现它是这样的(在弹出窗口出现后)
,
你所需要做的就是
var target_textarea=$(“#topid#secondtopid#details”)
然后使用target_textarea.val()代码>要将插入的值填充到新的弹出模式或对话框中吗??
请多解释一下你想做什么
如果iam正确,则不需要重新包含jquery代码,您可以在回调函数中执行此操作
////编辑
您可以使用.val()
设置或获取textarea
//编辑
在ajax中使用get,而表单使用POST
我想如果您在php中使用$\u GET
或$\u POST
,这会让人困惑
//
解决方案如下:
//
您需要选择textarea,而不仅仅是它的id,
您需要先选择最上面的父级,
然后是第二个顶级家长
例子:
如果你打开你的控制台,你会发现它是这样的(在弹出窗口出现后)
,
你所需要做的就是
var target_textarea=$(“#topid#secondtopid#details”)
然后使用target_textarea.val()代码>要将插入的值填充到新的弹出模式或对话框中吗??
请多解释一下你想做什么
如果iam正确,则不需要重新包含jquery代码,您可以在回调函数中执行此操作
////编辑
您可以使用.val()
设置或获取textarea
//编辑
在ajax中使用get,而表单使用POST
我想如果您在php中使用$\u GET
或$\u POST
,这会让人困惑
//
解决方案如下:
//
您需要选择textarea,而不仅仅是它的id,
您需要先选择最上面的父级,
然后是第二个顶级家长
例子:
如果你打开你的控制台,你会发现它是这样的(在弹出窗口出现后)
,
你所需要做的就是
var target_textarea=$(“#topid#secondtopid#details”)
然后使用target_textarea.val()代码>基本上,您的ajax需要关注
当AJAX例程运行时(我建议使用jQuery,因为它更简单,输入更少——请参见底部的文章),服务器将响应发送回变量responseText
。您不能使用
获取返回的数据,因为它不在那里。它位于responseText
变量中
此外,该变量是xmlhttp.onreadystatechange
函数的本地变量(仅在该函数中可用)
简单AJAX:
基本上,您的ajax需要关注
当AJAX例程运行时(我建议使用jQuery,因为它更简单,输入更少——请参见底部的文章),服务器将响应发送回变量responseText
。您不能使用
获取返回的数据,因为它不在那里。它在responseTex中
<form method = "post" action = "changeinstructions.php">
<textarea rows = "8" cols = "60" name = "details" id = "details" ></textarea>
<input type = "hidden" name = "included" '/>
<input type = "hidden" name = "id" />
<input type = "hidden" name = "deals_id"/>
<input type = "hidden" name = "token" />
<br>
<input type="submit" tabindex="-1" >
</form>
function updateform()
{
document.getElementById('f1').value = '1';
document.getElementById('f2').value = '59';
document.getElementById('f3').value = '226';
document.getElementById('f4').value = '7a7dd52df381577c7b8e2518aa9b2808';
document.getElementById('details').innerHTML = ' dumb instructions';
document.getElementById('details').value = ' dumb instructions';
}