Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript限制逗号_Javascript_Html_Forms - Fatal编程技术网

Javascript限制逗号

Javascript限制逗号,javascript,html,forms,Javascript,Html,Forms,我有一个函数,在文本字段旁边显示字段中字符数的倒计时(想想twitter) 函数倒计时(控件、maxLen、计数器、typeName){ var len=control.value.length; var txt=control.value; var span=document.getElementById(计数器); span.style.display=''; span.innerHTML=(maxLen-len); 如果(len>=(maxLen-10)){ span.style.col

我有一个函数,在文本字段旁边显示字段中字符数的倒计时(想想twitter)


函数倒计时(控件、maxLen、计数器、typeName){
var len=control.value.length;
var txt=control.value;
var span=document.getElementById(计数器);
span.style.display='';
span.innerHTML=(maxLen-len);
如果(len>=(maxLen-10)){
span.style.color='红色';
}否则{
span.style.color='';
}
}
下一个字段取逗号分隔的值。例如:

西红柿、苹果、桔子、梨

我想把这个列表限制为5件事(和4个分隔的逗号)

如何生成一个类似的函数,对输入中的逗号数进行倒计时

我已经开始了,但它不会改变跨度中的值。 我的Javascript

<script language="javascript" type="text/javascript">
    var max = 5;

    function commaDown(area,ticker){

    // our text in the textarea element
    var txt = area.val();

    // how many commas we have?
    var commas = txt.split(",").length;

    var span = document.getElementById(ticker);

    //var commas ++;
    if(commas > max) {
      // grab last comma position
      var lastComma = txt.lastIndexOf(",");
      // delete all after last comma position
      area.val(txt.substring(0, lastComma));
      //it was count with + 1, so let's take that down
      commas--;
    }
    if (txt == '') {
      commas = 0;
    }
    // show message
    span.innerHTML = (max-commas);
  }
</script>

var max=5;
功能通讯(区域、自动售票机){
//文本区域元素中的文本
var txt=area.val();
//我们有多少个逗号?
变量逗号=txt.split(“,”).length;
var span=document.getElementById(ticker);
//var逗号++;
如果(逗号>最大值){
//抓取最后一个逗号位置
var lastcoma=txt.lastIndexOf(“,”);
//删除最后一个逗号位置之后的所有内容
val(txt.substring(0,lastcoma));
//这是+1计数,所以我们把它记下来
逗号--;
}
如果(txt=''){
逗号=0;
}
//显示消息
span.innerHTML=(最大逗号);
}
还有我的html(我想问题就在这里)

5

有什么想法吗?

这里有一个解决方案:

测试

代码

如果您以前从未使用过,这很容易,在左侧有javascript代码(就像在HTML代码中一样,在右侧有HTML代码

您只需将
/edit
添加到jsbin url的末尾即可编辑该代码,并保存对该代码的任何新修订

我添加了jQuery框架,以加快示例的编写速度。

类似这样的内容(假设您有一个id为csv的文本字段)

举例


更新的答案

您的代码中似乎混合了jQuery的各个部分,这会导致脚本失败

    var max = 5;

    function commaDown(_area, _ticker){
    var area = document.getElementById(_area);

    // our text in the textarea element
    var txt = area.value;

    // how many commas we have?
    var commas = txt.split(",").length;

    var span = document.getElementById(_ticker);

    //var commas ++;
    if(commas > max) {
      // grab last comma position
      var lastComma = txt.lastIndexOf(",");
      // delete all after last comma position
      area.value = txt.substring(0, lastComma);
      //it was count with + 1, so let's take that down
      commas--;
    }
    if (txt == '') {
      commas = 0;
    }
    // show message
    span.innerHTML = (max-commas);
  }

到目前为止,我很喜欢它。我试着根据自己的需要更改它,但它根本没有改变值,我编辑了原始内容,我用html和修改过的版本更新了原始帖子。如果我的代码很好,你至少可以投赞成票;)从你的回答中可以看出,因为代码几乎是一样的,你可以把我的答案设为正确答案。
<input id="choices" type="text" name="choices" class="text medium" onkeyup="commaDown('choices','limit');"/> <span id="limit">5</span><br/>
document.getElementById('csv').onkeydown = function(e){
    if (!e) var e = window.event;
    var list = this.value.split(',');
     if (list.length == 5 && e.keyCode  ==  '188' )
     {
         // what to do if more than 5 commas(,) are entered
         // i put a red border and make it go after 1 second
         this.style.borderColor ='red';
         var _this  =  this;
         setTimeout(function(){
              _this.style.borderColor='';
              _this.disabled=false;
         },1000);
         // return false to forbid the surplus comma to be entered in the field
         return false;
     }
}
    var max = 5;

    function commaDown(_area, _ticker){
    var area = document.getElementById(_area);

    // our text in the textarea element
    var txt = area.value;

    // how many commas we have?
    var commas = txt.split(",").length;

    var span = document.getElementById(_ticker);

    //var commas ++;
    if(commas > max) {
      // grab last comma position
      var lastComma = txt.lastIndexOf(",");
      // delete all after last comma position
      area.value = txt.substring(0, lastComma);
      //it was count with + 1, so let's take that down
      commas--;
    }
    if (txt == '') {
      commas = 0;
    }
    // show message
    span.innerHTML = (max-commas);
  }