JS 给隐藏域赋值 SCRIPT5007: 无法设置未定义或 null 引用的属性"value"

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS 给隐藏域赋值 SCRIPT5007: 无法设置未定义或 null 引用的属性"value"相关的知识,希望对你有一定的参考价值。

function deleteButton()
document.getElementById('divButton').innerhtml = "";
document.getElementById('hfButtonName').value = "";
document.getElementById('hfNextNumber').value = "";
document.getElementById('hfButtonCount').value = "0";


<div>
<input type="button" id="btnAddButton" name="btnAddButton" value="添加按钮" onclick="return getButton()" />
<input type="button" id="btnDelteButton" name="btnDelteButton" value="删除按钮" onclick="return deleteButton();" />
<div id="divButton" runat="server" style="background: White; height: 100px; width: 500px;">
</div>
<input type="hidden" id="hfButtonName" name="hfButtonName" runat="server" />
<input type="hidden" id="hfNextNumber" name="hfNextNumber" runat="server" />
<input type="hidden" id="hfButtonCount" name="hfButtonCount" runat="server" />
</div>

你的隐藏域使用了runat="server",表示此控件由服务器管理,所以它的id可能会经服务器重新分配,若要获取生成html源码后的控件id,可以使用ID.ClientID获取:

function deleteButton()
    document.getElementById('<%=divButton.ClientID%>').innerHTML="";
    document.getElementById('<%=hfButtonName.ClientID%>').value="";
    document.getElementById('<%=hfNextNumber.ClientID%>').value="";
    document.getElementById('<%=hfButtonCount.ClientID%>').value="0";

 但<%%>符号不能在标记有runat="server"的head标签内出现,所以此代码可放到body标签内或没有runat="server"的head标签内

参考技术A 从页面代码来看,是asp.net,会出现这种错误的原因有可能是你的页面外面有母版页,这种情况下asp.net拼出来的真实控件ID与你在设计时看到的ID有区别,前面会加上母版页的名字。

建议你从浏览器查看页面源代码里面的真实ID,然后替换你的JS里面的ID

selenium webDriver给隐藏域赋值 input hidden set value

//直接这样无法给input hidden赋值
// driver.findElement(By.id("image_default")).sendKeys("a1112.jpg");
String val = driver.findElement(By.id("image_default")).getAttribute("value");



JavascriptExecutor jse = (JavascriptExecutor)driver;
//这种方式可用直接给隐藏域赋值
String s1="document.getElementById(‘image_default‘).value=‘a22.jpg‘";
jse.executeScript(s1);

如果还不行,jse.executeScript("document.getElementById(‘fs_img1‘).setAttribute(‘type‘, ‘text‘);"); 先改变元素的类型到text再sendKeys就行了。
driver.findElement(By.id("fs_img1")).sendKeys("a.jpg");













以上是关于JS 给隐藏域赋值 SCRIPT5007: 无法设置未定义或 null 引用的属性"value"的主要内容,如果未能解决你的问题,请参考以下文章

selenium webDriver给隐藏域赋值 input hidden set value

无法解析数据表 SCRIPT5007:无法设置未定义或空引用的属性“_DT_CellIndex”

JavaScript错误:SCRIPT5007:无法获取属性'getElementsByTagName'

IE9 JavaScript 错误:SCRIPT5007:无法获取属性“ui”的值:对象为空或未定义

Error-JavaScript-SCRIPT5007: 无法获取未定义或 null 引用的属性“style”

原生的js实现jsonp的跨域封装