Document.getElementById.value returning Undefined

Document.getElementById.value returning Undefined

本文关键字:Undefined returning value getElementById Document      更新时间:2023-09-26

以下是我的HTML代码

<div id="dl_address" class="dl-row">
 <div class="dl-col1">
    <span id="dl_addressMarker" class="dl-Marker">*</span>Address:
 </div>
 <div class="dl-col2">
  <input  id="dl_addressMarker" name="p.streetAddress" maxlength="100" size="15"  
                            class="landing-qualpanel-input-standin" type="text" onClick="formOpt(id)" value="Home Address">
 </div>
</div>

以下是我的JavaScript代码

<script language="javascript" type="text/javascript">
function formOpt(x){
    var y=document.getElementById(x).value;
    alert(y);
    }
</script>

我不明白为什么我变得未定义。请帮忙。提前致谢

这是因为您有两个具有相同 Id 的元素,这在 HTML 中是不允许的,这使得您的函数无法以这种方式获取输入。

更改输入的 ID,您将没事的。

您可以通过传递元素而不是 id 来简化代码:

.HTML:

<input  id="dl_addressMarker2" name="p.streetAddress"
      maxlength="100" size="15"  
      class="landing-qualpanel-input-standin" type="text"
      onClick="formOpt(this)" value="Home Address">

JavaScript :

function formOpt(x){
   var y = x.value;
   alert(y);
}

你有 2 个问题。(1)你应该像这样调用你的方法:formOpt(this)它将传递当前元素。(2)您重复了DOM ID。

写是这样的:

<script language="javascript" type="text/javascript">
function formOpt(x){
    //x is now the input element. You can fetch its id property.
    var y=document.getElementById(x.id).value;
    // you can do other things with x also.
    alert(y);
    }
</script>
<div id="dl_address" class="dl-row">
 <div class="dl-col1">
    <span id="dl_addressMarker" class="dl-Marker">*</span>Address:
 </div>
 <div class="dl-col2">
 <!-- I renamed the id on the input -->
  <input  id="dl_addressMarker_input" name="p.streetAddress" maxlength="100" 
  size="15"  class="landing-qualpanel-input-standin" 
 <!-- pass this into the function -->
  type="text" onClick="formOpt(this);" value="Home Address">
 </div>
</div>

请参阅工作示例:http://jsfiddle.net/KXCeh/1/

你需要传递id的值,并且你还需要保持每个元素的ids唯一

            <div class="dl-col2">
  <input  id="dl_addressMarker" name="p.streetAddress" maxlength="100" size="15"  
                            class="landing-qualpanel-input-standin" type="text" onClick="formOpt('dl_addressMarker')" value="Home Address">
 </div>