【问题标题】:put rendered input value inside another input field将渲染的输入值放在另一个输入字段中
【发布时间】:2012-09-23 17:41:30
【问题描述】:

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

代码如下:

<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

【问题讨论】:

    标签: javascript input field


    【解决方案1】:

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

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

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

    对于这个:

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

    【讨论】:

      【解决方案2】:

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

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

      我刚刚更新了您的 Fiddle,应该可以使用。

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

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

      【讨论】:

        【解决方案3】:

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

        $(document).ready(function() {
        
            displayNumber();
        
        });
        

        如果您打算在文档中仅使用 displayNumber,则执行此操作的速记方法如下所示

        $(document).ready(displayNumber);
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-10-31
          • 2012-07-24
          • 2023-03-23
          • 2016-07-14
          • 1970-01-01
          • 2014-10-19
          • 2021-11-22
          相关资源
          最近更新 更多