1

1番目の入力フィールドのレンダリング値を2番目の入力フィールドに入れようとしていますが、出力に問題があります。

コードは次のとおりです。

<script>
   function displayNumber(){     
      var card = document.getElementById('credit').value;

      var str = "";
      for(var i=1; i <= card.length-4; i++) {
         str += "*";
      }

      ecard = str + card.substr(card.length-4);
      document.getElementById('out').innerHTML = ecard;
      $("#output").val(ecard);
   }

   window.onload = displayNumber; 
</script>

<form id="myform">
   <input type="text" id="credit"   value="123456789012">
   <br>
   <input type="text" id="output" > 
</form> 

<label id="out"></label>

123456789012であるクレジットの値

入力フィールド「output」内に次のように表示されます。

********9012

これがデモ JSFIDDLEです

4

3 に答える 3

1

値を出力にプッシュする場合は、次のようにする必要があります。

document.getElementById('output').value = ecard;

フィドルを更新したところ、動作するはずです。

input タグでは、 を実行しても値は設定されません<input>value</input>。代わりに、"value" プロパティを使用して値が設定されるため、innerHTML プロパティは機能しませんが、value プロパティは機能します。

Fiddle では、No-Library (純粋な JS) を使用しています。これは、jQuery 構文を使用できないことを意味します。

于 2012-09-23T17:49:17.680 に答える
1

そのコードは、jQuery ライブラリを使用していることを確認して動作するはずです。これは、javascript のバニラ構文と jQuery の両方を使用しているとは思えません。そのため、それが機能するために jQuery ライブラリが含まれていることを確認してください。

jQuery を使用しない場合は、次の行を置き換えます。

$("#output").val(ecard);

これについて:

document.getElementById('output').value = ecard;
于 2012-09-23T17:49:49.757 に答える
0

If you plan to use jQuery you must wait until it has loaded. Instead of using window.onload try $(document).ready() like so

$(document).ready(function() {

    displayNumber();

});

If you plan to use only displayNumber on your document, a shorthand way to do this would be like this

$(document).ready(displayNumber);
于 2012-09-23T17:55:25.280 に答える