我在PHP页面中有HTML表单。表格有各种输入。其中一个输入有一个onchange事件:
<input size=10 type=number id=sku1 name=sku1 onchange="showUser(1, this.value);showWhse(1, this.value)">
这会调用以下函数:
<script type="text/javascript">
function showUser(userNumber, str)
{
if (str=="")
{
document.getElementById("txtHint" + userNumber).innerHTML="";
return;
}
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
//document.getElementById("txtHint" + userNumber).innerHTML=xmlhttp.responseText;
var responseText = xmlhttp.responseText;
var description = responseText.substring(12, responseText.indexOf(",Warehouse:"));
var warehouse = responseText.substring(responseText.indexOf(",Warehouse:")+11, responseText.indexOf(",SellingUnits:"));
var sellingUnits = responseText.substring(responseText.indexOf(",SellingUnits:")+14);
document.getElementById("whse" + userNumber).innerHTML = warehouse;
document.getElementById("txtHint" + userNumber).innerHTML = description;
document.getElementById("su" + userNumber).innerHTML = sellingUnits;
}
}
xmlhttp.open("GET","getdata1.php?q="+str,true);
xmlhttp.send();
}
</script>
这100%有效。但是,如果输入由会话变量填充,并刷新页面,如何在没有onchange事件的情况下让脚本再次执行onload?
所以当第一次访问页面时,id输入有一个值,执行脚本?
答案 0 :(得分:2)
只需执行onload函数吗?
window.onload = function init() {
showUser(1, document.getElementById("sku1").value);
}
您也可以使用文档正文的onload属性,或将init函数作为事件处理程序添加到DOMContentLoaded
。但我相信你已经有了一些在DOMready上执行的功能。
答案 1 :(得分:0)
你也可以使用jquery中的ready函数
$(document).ready(function() {
showUser(1, $("#sku1").val());
});
答案 2 :(得分:0)
好吧,您可以使用onload事件。您可能还想考虑使用Jquery的document.ready功能。可以找到差异here。此外,Jquery为访问表单元素提供了更简洁的语法
在任何一种情况下,您可能只需要执行某些功能,例如检查字段是否有值。
<script type="text/javascript">
function showUserOnLoad()
{
var inputValue = $('#sku1').val();
if(inputValue != '' && inputValue != null)
showUser(1, inputValue);
}
function showUser(userNumber, str)
{
...
}
</script>