我想知道爲什麼,我將下面的代碼添加到我的頁面後,似乎破壞了我函數定義的可信度。爲什麼我的HTML按鈕鏈接到一個未定義的函數?
<script type="text/javascript">
if (window.addEventListener)
{ // Mozilla, Netscape, Firefox
window.addEventListener('load', WindowLoad, false);
}
else if (window.attachEvent)
{ // IE
window.attachEvent('onload', WindowLoad);
}
function WindowLoad(event) {
var str = "test";
var combo = "<select id=\"users\">";
str = $("div.edit").text();
var ar = str.split("*");
for (i=0; i <= ar.length - 1; i++)
{
if (ar[i] != "")
combo = combo + "<option value=\"" + ar[i] + "\">" + ar[i] +"</option>";
else
combo = combo + "<option value=\"\"></option>";
}
combo = combo + "</select>";
$("div.edit").html(combo);
}
</script>
按鈕的工作之前
這裏是整個頁面:
<font size="14"><b>Admin</b> </font><a href="/worksched/table.php">Return to table</a><button onClick="logout();">Log Out</button>
<br><br><br><br>
Set values for name on left.
<br><br>
<table style="width:100%">
<tr>
<th>Name</th>
<th>Monday</th>
<th>Tuesday</th>
<th>Wednesday</th>
<th>Thursday</th>
<th>Friday</th>
<th>Saturday</th>
<th>Sunday</th>
</tr>
<td><div id="edit" class="edit"><? echo $strout ?></div></td>
<td><input id="monday"></td>
<td><input id="tuesday"></td>
<td><input id="wednesday"></td>
<td><input id="thursday"></td>
<td><input id="friday"></td>
<td><input id="saturday"></td>
<td><input id="sunday"></td>
</table><br>
<button onClick="saveval();">Save Values</button>
<button onClick="remuser();">Remove this user</button>
<div id="none"></div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js"></script>
<script type="text/javascript">
if (window.addEventListener)
{ // Mozilla, Netscape, Firefox
window.addEventListener('load', WindowLoad, false);
}
else if (window.attachEvent)
{ // IE
window.attachEvent('onload', WindowLoad);
}
function WindowLoad(event) {
var str = "test";
var combo = "<select id=\"users\">";
str = $("div.edit").text();
var ar = str.split("*");
for (i=0; i <= ar.length - 1; i++)
{
if (ar[i] != "")
combo = combo + "<option value=\"" + ar[i] + "\">" + ar[i] +"</option>";
else
combo = combo + "<option value=\"\"></option>";
}
combo = combo + "</select>";
$("div.edit").html(combo);
}
</script>
<script type="text/javascript">
function logout()
{
var message="logout";
$.post("/worksched/admin.php", {
msg: message
})
.done(function(data){
$('#none').html(data);
});
window.location.href="/worksched/login.php";
//var ar = document.documentElement.innerHTML;
//ar = ar + "fdasssssssssssf";
//document.write(ar);
}
function remuser()
{
var itemID = document.getElementByID("")
var strUser = itemID.options[itemID.selectedIndex].text;
$.post("/worksched/admin.php", {
msg: "delete"
code: struser
})
.done(function(data){
$('#none').html(data);
});
alert("User with name: (" + strUser + ") Has been removed from the database");
}
</script>
後,我加入了頁面加載窗口事件監聽器,我的按鈕開始顯示爲「未捕獲的ReferenceError:saveval未定義爲 at HTMLButtonElement.onclick(admin.php:25)「 如果我嘗試將其全部放入一個塊中,則頁面加載代碼不會執行。
那麼,爲什麼你鏈接在jQuery,但不使用jQuery?然後你可以做'$(window).on('load',WindowLoad)'。它讓我感到害怕,你有一個提及Netscape的評論。 –
哈哈哈確實很有趣。我從堆棧溢出文章複製了該部分。 我使用JQuery而不是添加一個事件監聽器,該代碼的特定部分工作,但我仍然有按鈕問題。 – Thcsparky