JavaScript-无法获取属性';价值';指未定义的或空的引用
以下代码针对第一个控件运行,尽管完全相同,但针对第二个控件失败:JavaScript-无法获取属性';价值';指未定义的或空的引用,javascript,Javascript,以下代码针对第一个控件运行,尽管完全相同,但针对第二个控件失败: if (document.getElementById("employeeID").value == "") { document.getElementById("lblEmp").textContent = "Employee Name is required"; ret = false; } else { document.getElementById("lblEmp").textContent = "
if (document.getElementById("employeeID").value == "") {
document.getElementById("lblEmp").textContent = "Employee Name is required";
ret = false;
} else {
document.getElementById("lblEmp").textContent = "";
}
if (document.getElementById("grossSalary").value == "") {
document.getElementById("lblGrossSalary").textContent = "Gross Salary is required";
ret = false;
} else {
document.getElementById('#lblGrossSalary').textContent = "";
}
代码在employeeID
控件中按预期工作,但在grossalary
控件上抛出主题错误
剃刀:
@LabelFor(model=>model.employeeID,htmlAttributes:new{@class=“controllabel col-md-2”})
@EditorFor(model=>model.employeeID,new{htmlAttributes=new{@class=“form control”}})
@Html.ValidationMessageFor(model=>model.employeeID,“,new{@class=“text danger”})
@LabelFor(model=>model.grossalary,htmlAttributes:new{@class=“controllabel col-md-2”})
@EditorFor(model=>model.grossalary,new{htmlAttributes=new{@class=“form control”}})
应该是
document.getElementById('lblGrossSalary').textContent = "";
而不是
document.getElementById('#lblGrossSalary').textContent = "";
在上一个else块中看起来问题可能如下:
else {
document.getElementById('#lblGrossSalary').textContent = "";
}
将('lblgrossalary')
更改为('lblgrossalary')
您只能在对象上使用点(.)运算符,因此如果它未定义或为null,并且需要“.value”,您将得到一个错误
我重新编写了您的代码,但这应该适合您!它也更干净:)
什么是
@Html.LabelFor
?这看起来不仅仅是JavaScript和HTML。还有document.getElementById(“Grossalary”).value
没有名为“Grossalary”的ID,该ID的名称是“lblgrossalary”
else {
document.getElementById('#lblGrossSalary').textContent = "";
}
// first save the everything in a variable for later
// if the element with a given id doen't exist the "|| false" will turn it into a boolean false
var employeeID = document.getElementById("employeeID") || false;
var lblEmp = document.getElementById("lblEmp") || false;
var grossSalary = document.getElementById("grossSalary") || false;
var lblGrossSalary = document.getElementById("lblGrossSalary") || false;
// before accessing the .value check if its not false
if (employeeID && employeeID.value == "") {
lblEmp.textContent = "Employee Name is required";
ret = false;
}
else {
lblEmp.textContent = "";
}
if (grossSalary && grossSalary.value == "") {
lblGrossSalary.textContent = "Gross Salary is required";
ret = false;
}
else {
lblGrossSalary.textContent = "";
}