以下是我的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>
我无法理解为什么我会得到Undefined。请帮助。 提前致谢
答案 0 :(得分:3)
那是因为你有两个具有相同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);
}
答案 1 :(得分: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/
答案 2 :(得分:1)
你需要传递id的值,你还需要保持每个元素的唯一ID
<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>