0

以下は私の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>

未定義になる理由がわかりません。親切に助けてください。前もって感謝します

4

3 に答える 3

3

これは、同じ Id を持つ 2 つの要素があり、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);
}
于 2013-02-03T11:53:25.627 に答える
2

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/

于 2013-02-03T11:55:24.207 に答える
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>
于 2013-02-03T11:53:38.077 に答える