Javascript限制逗号
我有一个函数,在文本字段旁边显示字段中字符数的倒计时(想想twitter)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
函数倒计时(控件、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);
}