您的位置 首页 > 数码极客

js如何让文本框居中,js文本框居中怎么设置!

在HTML中,文本框主要有两种表现方式:1.单行文本框<input type="text">;2.多行文本框<textarea>。虽然<input>在字面上有value值,而<textarea>却没有,但都可以通过value获取它们的值。

使用表单的value获取值是推荐的。它是HTML DOM中的属性,不建议使用标准DOM的方法,即不要使用getAttribute()获取value值。原因就是,对value属性的修改,不一定会反映在DOM中。

除了value值,还有一个属性对应的是defaultValue,可以得到原本的value值。不会因为值的改变而变化。

选择文本:

使用select()方法,可以将文本框里的文本选中,并且焦点设置到文本框中。

选中部分文本:

在使用文本框内容的时候,我们有的时候要直接选定部分文本,这个行为还没有标准。FF的解决方案是:setSelectRange()方法。该方法接受两个参数:索引和长度。

上面的写法,除了IE,其他浏览器都支持这种写法。那IE是如何做的呢?IE可以使用IE的范围操作。

W3C也有自己的范围,这里就需要做兼容:

使用select事件,可以选中文本框文本后触发:

取得选中的文本:

由于没有任何规范解决这个问题,所以需要自己使用一些手段。FF为文本框提供了两个属性:selectionStart和selectionEnd。

除了IE,其他浏览器都支持这两个属性(IE9已支持)。又是IE。。。老版本的IE老是不跟大家一起玩耍。IE提供了另一个解决方案:selection对象。属于document。这个对象保存着用户在整个文档范围内选择的文本信息,这里又需要做兼容:

注意,这里有一个大问题,就是IE在触发select事件的时候,在选择一个字符后立即触发,而其他浏览器是选择想要的字符释放鼠标键后才触发。所以,使用alert()的话,导致跨浏览器不兼容,暂无办法让所有浏览器都兼容,但可以通过不去使用alert()来解决。

过滤输入:

有的时候需要过滤输入的字符,使文本框只能输入指定的字符。有一种做法就是判断字符是否合法,这是提交后操作的。还可以在提交前限制某些字符,过滤输入。

上面的方法,条件判断只有数字才可以输入,导致常规按钮比如光标键、退格键、删除键等无法使用。部分浏览器,比如FF需要解放这些键,而非字符触发的编码均为0;在Safari3之前的浏览器,也会被阻止,而它对应的字符编码全部为8,所以最后就加上charCode > 8的判断即可。

以上这种过滤还是比较脆弱的,我们还希望能够阻止裁剪、复制、粘贴和中文字符输入操作才能真正屏蔽掉这些。

要阻止裁剪、复制和粘贴,那么我们可以使用剪切板相关事件进行处理,JS提供了6组剪切板相关的事件:

如果想要禁用裁剪、复制、粘贴,只需要阻止默认行为即可。

当我们裁剪和复制的时候,我们可以访问剪切板里的内容,但FF、Opera浏览器不支持访问剪切板。并且,不同的浏览器也有自己不同的理解。

最后一个可能会影响到输入的因素是:输入法。我们知道,中文输入法,它的原理是在输入法面板上先存储文本,按下回车就写入英文文本,按下空格就写入中文文本。

有一种解决方案是通过CSS来禁用调出输入法:

测试发现,Chrome浏览器却无法禁止输入法的调出。所以,为了解决谷歌浏览器的问题,最好还要使用正则验证已输入的文本。

自动切换焦点:

为了增加表单字段的易用性,很多字段在满足一定条件时(比如长度),就会自动切换到下一字段上继续填写。

责任编辑: 鲁达

1.内容基于多重复合算法人工智能语言模型创作,旨在以深度学习研究为目的传播信息知识,内容观点与本网站无关,反馈举报请
2.仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证;
3.本站属于非营利性站点无毒无广告,请读者放心使用!

“js如何让文本框居中,js文本框居中怎么设置,如何使文本框居中”边界阅读