2013-03-11 81 views
0

我正在努力获得最小字符计数器来处理CI/jQuery。我希望能够防止表单提交并在用户输入太少字符时显示警报。形式使用的代码只是提交正常:jQuery Codeigniter Textarea的最小字符计数器

function checktextarea(minLength) { 

    var textarea = jQuery('#field').value.length; 
    if(textarea < minLength) { 
     e.preventDefault(); 
     alert('You need to enter at least ' + minLength ' + characters'); 
     return false; 
    } 
}; 

而在CI我:

<?php $attributes = array ('onsubmit' => 'checktextarea(15)'); ?> 
<?php echo form_open('controller/function', $attributes); ?> 

// I know this is standard HTML 
    <textarea name="content" class="textarea_css" rows="10" cols="73" id="field"></textarea> 

<?php echo form_submit('send', 'Submit Your Textarea'); ?> 
<?php echo form_close(); ?> 

任何帮助,非常感谢!

+0

您是否获得在您的浏览器控制台的任何错误? http://webmasters.stackexchange.com/questions/8525/how-to-open-the-javascript-console-in-different-browsers – Malachi 2013-03-11 22:16:38

回答

2

你有一个e var的引用,它不在你的函数范围内。我假设你试图取消一个事件,但你应该在你的父功能中做到这一点。

e.preventDefault();会导致编译错误。

接下来,您正在访问文本区域的值不正确,请尝试jQuery('#field').val().length;

最后,行alert('You need to enter at least ' + minLength ' + characters');是畸形的,它应该读alert('You need to enter at least ' + minLength + ' characters');

加入了小提琴,只是为了好玩和证明:http://jsfiddle.net/TSbK8/7/

+0

Thankyou解决了这个问题:-) – whispersan 2013-03-11 23:09:50

+0

最终Codeigniter我必须使用:<?php echo form_submit('send','Submit','onclick =“return checkTextArea(50)”'); ?> – whispersan 2013-03-12 00:38:21

0

你是jQuery语句得到的长度是不完全正确的。而不是var textarea = jQuery('#field').value.length;尝试var textarea = jQuery('#field').val().length;

+0

我曾尝试jQuery变体而不是Javascript,但它没有任何区别: - ( – whispersan 2013-03-11 21:48:08

+1

此外,'onsubmit'函数需要'return',试着编辑'checktextarea(15)'为'return checktextarea(15)'。 – 2013-03-11 21:52:42