0

我正在努力获得与 CI / jQuery 一起使用的最小字符计数器。如果用户输入的字符太少,我希望能够阻止表单提交并显示警报。表单只是使用以下代码正常提交:

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(); ?>

非常感谢您的帮助!

4

2 回答 2

2

您有一个对evar 的引用,它不在您的函数范围内。我假设您正在尝试取消事件,但您应该在父函数中执行此操作。

该行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/

于 2013-03-11T22:25:13.250 回答
0

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

于 2013-03-11T21:42:25.500 回答