我有两个javascript函数,insertAddedSup和removeAdded。当我从表中检索值并使用此信息填充控件时,onclick 事件会插入用户,并且“删除”按钮工作正常。当我使用 LDAP 搜索用户并单击该用户时,所有 html 都是正确的(显示发送到删除函数的正确参数 - 就像 SQL 结果一样),但是当我单击删除按钮时,函数中使用的参数值与 html 中显示的参数值不同。我无法从任何地方识别该值......它看起来几乎是随机的,尽管它总是相同的值。不知道该怎么办。有谁知道可能是什么问题吗?
以下是函数:
function insertAddedSup(uidSup, fullnameSup) {
var fullnameSup = fullnameSup.toLowerCase();
var currentContentSup = '<div id="y_' + uidSup + '" class="selectedDataBox" style="overflow:hidden;"><span style="text-transform:capitalize; float:left">' + fullnameSup + '</span><input type="hidden" name="EmpID" id="personAddedSup_' + uidSup + '" value="' + uidSup + '"><input type="button" name="removeAdded_' + uidSup + '" id="removeAdded_' + uidSup + '" value="Remove" onclick="alert(' + uidSup +');removeAdded(' + uidSup + ');" style="font-size:0.7em; float:right; width:60px;"></div>';
$('#addedPerson').html(currentContentSup);
alert($('#addedPerson').html());
$('#addedPerson').show();
$('#MainContent_searchContent_btnSubmitEmployee').attr('disabled', false);
}
function removeAdded(uidSup) { // hide the div of the person added
var divID = "#y_" + uidSup;
alert($('#addedPerson').html());
$(divID).hide();
$(divID).remove();
if ($('#addedPeople').html() == '') {
$('#addedPeople').hide();
}
$('#MainContent_searchContent_btnSubmitEmployee').attr('disabled', true);
}
我添加了一些警报,以便我可以看到实际发送的内容、html 中的内容等。
编辑: HTML
<div id="y_0730337" class="selectedDataBox" style="overflow:hidden;">
<span style="text-transform:capitalize; float:left"></span>
<input name="EmpID" id="personAddedSup_0730337" value="0730337" type="hidden">
<input name="removeAdded_0730337" id="removeAdded_0730337" value="Remove" onclick="alert(0730337);removeAdded(0730337);" style="font-size:0.7em; float:right; width:60px;" type="button">
</div>
如果数字不以 0 开头,它似乎也可以正常工作。有什么方法可以确保该值被视为字符串吗?
最佳答案
在您的按钮中单击:
onclick="alert(0730337);removeAdded(0730337);"
这些被视为数字而不是字符串,因为参数周围没有引号。如果一个数字以 0 开头,那么该数字实际上将从下一个非零数字(在本例中为 7)开始,从而使值传递为 730337(老实说,我不知道为什么您看到的实际传递值有如此大的不同) .我有兴趣听听其他人是否对此有解释)。
你真正想要的是:
onclick="alert('0730337');removeAdded('0730337');"
您所说的不以 0 开头的数字让我相信这就是您遇到此问题的原因。
关于c# - 即使 html 显示正确,Javascript 函数也会发送错误的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8993064/