• 表单(二):文本框



    input与textarea

    <input type='text' size='25' maxlength='50' value=''init value'/>

    1、要表现为文本框,必须设置type为text
    2、设置size特性,可以指定文本框能够显示的字符数
    3、设置value特性,可以设置文本框的初始值
    4、maxlength用于指定文本框可以接收的最大字符数。

    <textarea rows='25' cols='25'>init value</textarea>

    1、与input不同,要指定文本框的大小,可以使用rows(字符行数)和cols(字符列数)特性。
    2、与input不同,textarea的初始值必须放在<textarea>与</textarea>之间
    3、与input不同,textarea不能指定最大字符数

    相同:用户输入的内容都保存在value属性中。

    var textbox = document.forms[0].elements('textbox1');
    console.log(textbox.value);
    textbox.value = 'some new value';

    *:建议使用像上面一样设置,读取文本框的值,不要使用标准的dom方法setAttribute()设置。原因是因为对value属性的修改不一定反应在dom中

    选择文本
    1、select()
    这个方法用于选择文本框中的所有文本。

    var textbox = document.forms[0].elements['textbox1'];
    textbox.select();

    在文本框获得焦点时选择其所有文本,这是一种非常常见的做法,特别是在文本框包含默认值的时候。因为这样做可以让用户不必一个一个地删除文本。

    EventUtil.addHandler(textbox, 'focus', function(){
        event = EventUtil.getEvent(event);
        var target = EventUtil.getTarget(event);
        target.select();
    })

    将上面的代码应用到文本框后,只要文本框获得焦点,就会选择其中所有的文本。这种技术能够大幅度地提升表单地易用性
    2、与select()方法对应的,是一个select事件。在选择了文本框中的文本时,就会触发select事件。

    var textbox = document.forms[0].elements['textbox1'];
    EventUtil.addHandler(textbox, 'select', function(event){
        var alert('Text selected' + textbox.value);
    })

    取得选择的文本

    通过select事件我们可以知道用户什么时候选择了文本,但仍然不知道用户选择了什么文本。
    selectionStart,selectionEnd。这两个属性中保存的是基于0的数值

    function getSelectedText(textbox){
        if(typeof textbox.selectionStart == 'number'){
            return textbox.value.substring(textbox.selectionStart, textbox.selectionEnd);
        }else if(document.selection){
            return document.selection.createRange().text;
        }
    }

    选择部分文本

    setSelectionRange()方法。所有文本框都有一个setSelectionRange()方法,接受两个参数
    要选择的第一个字符的索引和要选择的最后一个字符之后的索引

    textbox.value = 'hello world!';
    //选择所有文本
    textbox.setSelectionRange(0, textbox.value.length); //'hello world!'
    //选择前三个字符
    textbox.setSelectionRange(0,3); //'hel'

    要想在文本框中被选择的效果,必须让文本框获得焦点。

    function selectText(textbox, startIndex, stopIndex){
        if(textbox.setSelectionRange){
            textbox.setSelectionRange(startIndex,stopIndex);
        }else if(textbox.createTextRange){
            var range = textbox.createTextRange();
            range.collapse(true);
            range.moveStart('character', startIndex);
            range.moveEnd('character', stopIndex - startIndex);
            range.select();
        }
        textbox.focus();
    }

    屏蔽非数值字符

    EventUtil.addHandler(textbox, 'keypress', function(event){
        event = EventUtil.getEvent(event);
        var target = EventUtil.getTarget(event);
        var charCode = EventUtil.getCharCode(event);
        if(!/d/.test(String.fromCharCode(charCode)) && charCode>9 && !event.ctryKey){
            EventUtil.preventDefault(event);
        }
    })

    在这个例子中,使用EventUtil.getCharCode()实现了跨浏览器取得字符编码。然后使用String.fromCharCode()将字符编码转换称字符串,
    再使用正则表达式/d/来测试该字符串,从而确定用户输入的是不是数值。如果测试失败,那么就使用EventUtil.preventDefault()来屏蔽按键
    事件。

    h5约束api
    1、必填字段,指定required属性,在提交表单时都不能空着

    <input type='text' name='username' required/>

    ...

  • 相关阅读:
    512M内存机器如何用好Mysql
    linux下查找文件和文件内容
    记“debug alipay”一事
    OFBiz中根据店铺获取产品可用库存的方法
    ubuntu中安装eclipse
    ubuntu中安装jdk
    ubuntu14.04中解压缩window中的zip文件,文件名乱码的解决方法
    apache将请求转发到到tomcat应用
    网站不能访问的原因
    birt报表图标中文显示为框框的解决方法
  • 原文地址:https://www.cnblogs.com/wzndkj/p/8861343.html
Copyright © 2020-2023  润新知