2016-06-08 112 views
-4

下面的代码在首次运行控制很好,尽管是完全相同的第二控制失败:JavaScript的 - 无法获取的未定义或空引用属性“值”

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控制,但抛出主题错误的控制grossSalary

剃刀:

<div class="form-group"> 
    @Html.LabelFor(model => model.employeeID, htmlAttributes: new { @class = "control-label col-md-2" }) 
    <div id="inner" class="col-md-10"> 
     @Html.EditorFor(model => model.employeeID, new { htmlAttributes = new { @class = "form-control" } }) 
     @Html.ValidationMessageFor(model => model.employeeID, "", new { @class = "text-danger" }) 
     <label id="lblEmp" style="color:red"></label> 
    </div> 
</div> 
<div class="form-group"> 
    @Html.LabelFor(model => model.grossSalary, htmlAttributes: new { @class = "control-label col-md-2" }) 
    <div id="inner" class="col-md-10"> 
     @Html.EditorFor(model => model.grossSalary, new { htmlAttributes = new { @class = "form-control"} }) 
     <label id="lblGrossSalary" style="color:red"></label> 
    </div> 
</div> 
+0

什么是@ Html.LabelFor?这看起来不仅仅是JavaScript和HTML。 – mikemaccana

+0

另外'document.getElementById(“grossSalary”)。value'没有称为'grossSalary'的ID,ID的名字是'lblGrossSalary' – mikemaccana

回答

2

应该

document.getElementById('lblGrossSalary').textContent = ""; 

,而不是

document.getElementById('#lblGrossSalary').textContent = ""; 
在你的上

封锁其他

1

貌似牛逼他的问题可能是以下几点:

else { 
    document.getElementById('#lblGrossSalary').textContent = ""; 
} 

变化('#lblGrossSalary')('lblGrossSalary')

0

你只能在对象上使用点(。)运算符,所以如果它的undefined或null,并且想要“.value”,你会得到一个错误。

我重新编写了你的​​代码,但这应该适合你!它也很多清洁:)

// 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 = ""; 
} 
相关问题