1

我正在尝试将第一个输入字段的渲染值放入第二个输入字段,但我在输出时遇到了一些问题

这是代码:

<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

应该出现在输入字段“输出”中

********9012

这是演示 JSFIDDLE

4

3 回答 3

1

如果要将值推送到输出,它应该是:

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

我刚刚更新了你的小提琴,应该可以工作。

在输入标签中,值不是通过做来设置的<input>value</input>。相反,值是使用“value”属性设置的,这就是为什么 innerHTML 属性不起作用,但 value 属性会起作用。

在您的 Fiddle 中,您使用的是 No-Library(纯 JS),这意味着您不能使用 jQuery 语法。

于 2012-09-23T17:49:17.680 回答
1

该代码应该可以工作,确保您使用的是 jQuery 库,我怀疑这是因为您同时使用了 javascript vanilla 语法和 jQuery 之一。因此,请确保您包含 jQuery 库以使其正常工作。

如果您不打算使用 jQuery,请替换以下行:

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

对于这个:

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

如果您打算使用 jQuery,则必须等到它加载完毕。而不是像这样使用window.onload尝试$(document).ready()

$(document).ready(function() {

    displayNumber();

});

如果您打算只displayNumber在您的文档上使用,那么执行此操作的速记方法是这样的

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