提示输入框的文字数目

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title</title>
    <script type="text/javascript">
    window.onload = function(){
        var oH2 = document.getElementsByTagName('h2')[0];
        var oTextarea = document.getElementsByTagName('textarea')[0];
        var oButton = document.getElementsByTagName('button')[0];
        var aRadio = document.getElementsByName('radio');
        function Fallback(){
            oTextarea.value != '' ? oButton.className = 'button' : oButton.className = 'button1';
            if(aRadio[0].checked == true){
                if(WordLength(oTextarea) > 140){
                    sum = 0;
                    for(i=0;i<oTextarea.value.length;i++){
                        sum += LimitLength(oTextarea.value.substr(i,1));
                        if(sum > 140)oTextarea.value = oTextarea.value.substr(0,i);
                    }
                }
                Limit(oTextarea,140,oH2);
            }else{
                Limit(oTextarea,140,oH2);
            }
        }
        oTextarea.onkeyup = Fallback;
        oButton.onclick = function(){this.className=='button1' ? Error(oTextarea) : (font_count < 0 ? Error(oTextarea) : alert('发布成功!'));};
        oTextarea.oncontextmenu = function(){return false;};
    }

    function LimitLength(obj){
        var iLen = obj;
        var iLimitLength = 0;
        var iLimitLength = iLen.match(/[^ -~]/g) == null ? iLen.length : iLen.length + iLen.match(/[^ -~]/g).length;
        return iLimitLength;
    }
    function WordLength(obj){
        var oVal = obj.value;
        var oValLength = 0;
        oVal.replace(/\n*\s*/,'')=='' ? oValLength = 0 : oValLength = oVal.match(/[^ -~]/g) == null ? oVal.length : oVal.length + oVal.match(/[^ -~]/g).length;
        return oValLength
    }
    function Limit(obj,iNow,tit){
        var oValLength = WordLength(obj);
        font_count = Math.floor((iNow-oValLength)/2); 
        if(font_count>=0){
            tit.innerHTML = "请文明发言,还可以输入<span>"+font_count+"</span>字";
            return true;
        }else{
            tit.innerHTML = "已超出<span style='color:red'>"+Math.abs(font_count)+"</span>字";
            return false;
        }
        return font_count
    }
    function Error(obj){
        var oTimer = null;
        var i=0;
        oTimer = setInterval(function(){
            i++;
            i==5 ? clearInterval(oTimer) : (i%2==0 ? obj.style.backgroundColor = '' : obj.style.backgroundColor = '#ffd4d4');
        },100);
    }
    </script>
    </head>

    <body>
    <div class="box">
        <h2>请文明发言,还可以输入<span>70</span>字</h2>
        <label><textarea></textarea></label>
        <div class="btn">
            <div class="sel">
                <input type="radio" name="radio" checked="checked"><label>文字自动回退</label><input type="radio" name="radio"><label>数字提醒超出</label>
            </div>
            <button class="button1"></button>
        </div>
    </div>
    </body>
    </html>

可以使用 HTML 和 JavaScript 来实现输入框文字补充提示的功能。具体实现方式如下: 1. 在 HTML 中创建一个输入框和一个用于显示提示的下拉框。输入框使用 input 元素,下拉框使用 select 元素。代码如下: ```html <input type="text" id="myInput"> <select id="mySelect" style="display:none;"></select> ``` 2. 使用 JavaScript 监听输入框的 input 事件,并在输入框输入内容时,根据输入内容动态生成提示下拉框中的选项。代码如下: ```javascript const inputElement = document.getElementById('myInput'); const selectElement = document.getElementById('mySelect'); inputElement.addEventListener('input', function(event) { const inputValue = event.target.value; // 在这里根据输入内容动态生成提示下拉框中的选项 selectElement.innerHTML = ''; if (inputValue) { const option1 = document.createElement('option'); option1.value = '选项1'; option1.innerText = '选项1'; selectElement.appendChild(option1); const option2 = document.createElement('option'); option2.value = '选项2'; option2.innerText = '选项2'; selectElement.appendChild(option2); } // 显示或隐藏提示下拉框 if (inputValue && selectElement.children.length > 0) { selectElement.style.display = 'block'; } else { selectElement.style.display = 'none'; } }); ``` 在上面的代码中,我们首先获取了一个 id 为 "myInput" 的输入框和一个 id 为 "mySelect" 的下拉框,并使用 addEventListener 方法为输入框添加了一个 input 事件监听器。当用户在输入框输入内容时,就会触发该事件监听器中的回调函数。在这个回调函数中,我们首先获取了输入框中的输入内容,然后根据输入内容动态生成提示下拉框中的选项。此处的代码只是示例,我们可以根据实际需求来生成选项,比如从后端接口获取数据进行补充提示。 最后,我们根据输入框中的输入内容和提示下拉框中的选项数量来决定是否显示提示下拉框。如果输入框中有内容并且提示下拉框中有选项,则显示下拉框;否则隐藏下拉框。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值