jQuery   发布时间:2022-03-30  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了jquery – Onload将输入大小与文本长度相匹配大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试让jQuery测试输入框onLoad中文本的长度,并更改输入框的大小以适应.这是我到目前为止的代码尝试:

$("#emailSubject").attr('size',this.val().length);

我收到以下错误

我究竟做错了什么?

更新:现在我不再收到第一个错误,但是长度显示为0,即使它不应该是. (我正在使用警报检查长度是多少).为什么会这样?

更新:这是代码上下文:

$(
        function()
        {
            //works correctly   
            alert($("#emailSubject").val().length);
            //throws error
            $("#emailSubject").attr('size',($(this).val().length)); 
        }
    )

错误 – 长度在警报中正确显示,但我收到错误

解决方法

作为 Alien Webguy said,你试图在一个原始的DOM元素或窗口对象调用jQuery函数(val)(你没有显示足够的上下文让我们知道这是什么,但是错误告诉我们它不是jQuery实例)文档对象(因为这是jQuery在调用你的ready处理程序时设置的). (您的更新澄清了它.)所以第一件事是获取该字段的正确引用并将其包装在jQuery实例中.

但另外,如果将大小设置为字符数,则该字段几乎肯定会比您想要的大得多.那是因为大小以统一的字符宽度工作.

相反,通常的做法是使用具有相同字体系列,样式,大小,文本修饰等的离页元素作为输入元素来测量实际字符串.像这样的东西(live copy):

CSS:

#theField,#measure {
  font-family: serif;
  font-size: 12pt;
  font-style: normal;
}
#measure {
  position: absolute;
  left: -10000px;
  top: 0px;
}

HTML:

<input type='text' id='theField' value=''>
<span id="measure"></span>

JavaScript的:

jQuery(function($) {
  var field;

  // Hook up some events for resizing
  field = $("#theField");
  field.bind("change keypress click keydown",function() {
    resizeIt(field);
  });

  // Resize on load
  resizeIt(field);

  // Function to do the work
  function resizeIt(field) {
    var measure = $("#measure");
    measure.text(field.val());
    field.css("width",(measure.width() + 16) + "px");
  }
});

请注意,我正在调整各种事件;我怀疑列表是否全面,但它给了你一个想法.

大佬总结

以上是大佬教程为你收集整理的jquery – Onload将输入大小与文本长度相匹配全部内容,希望文章能够帮你解决jquery – Onload将输入大小与文本长度相匹配所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。