首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Twitter like counter

Twitter like counter
EN

Stack Overflow用户
提问于 2017-07-17 23:17:37
回答 1查看 83关注 0票数 1

库/框架使用= Jquery+Bootstrap 4我想做一个类似twitter的计数器,但是有两个输入字段,如果两个输入是有效的,那么post。到目前为止,这是我的代码。

代码语言:javascript
复制
$('.new_post_title').keyup(function() {
  var max_character = 15;
  var length_ = $(this).val().length;

  if (length_ > max_character) {
    $(".new_post_title_count").css('color', 'red');
    var character = length_;
    $('.new_post_title_count').text(character);
    $('.new_post_button').prop('disabled', true);
  } else {
    $(".new_post_title_count").css('color', 'black');
    var character = max_character - length_;
    $('.new_post_title_count').text(character);
    $('.new_post_button').prop('disabled', false);
  }
});

$('.new_post_content').keyup(function() {
  var max_character = 10;
  var length_ = $(this).val().length;

  if (length_ > max_character) {
    $(".new_post_content_count").css('color', 'red');
    var character = length_;
    $('.new_post_content_count').text(character);
    $('.new_post_button').prop('disabled', true);
  } else {
    $(".new_post_content_count").css('color', 'black');
    var character = max_character - length_;
    $('.new_post_content_count').text(character);
    $('.new_post_button').prop('disabled', false);
  }
});
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="modal fade" id="new_post_modal" tabindex="-1" role="dialog" aria-labelledby="new_post_modalLabel" aria-hidden="true">
  <div class="modal-dialog" role="document">
    <div class="modal-content">
      <div class="modal-body">
        <form>
          <div class="form-group">
            <label class="form-control-label">Title (Optional)</label>
            <input type="text" class="form-control new_post_title" placeholder="Make a title...">
            <span class="new_post_title_count"></span>
          </div>
          <div class="form-group">
            <label class="form-control-label">Content</label>
            <input type="text" class="form-control new_post_content" placeholder="Publish something...">
            <span class="new_post_content_count"></span>
          </div>
          <div class="form-group">
            <label class="form-control-label">Image</label>
            <input type="file" class="form-control-file">
          </div>
          <button class="btn btn-primary new_post_button">Post</button>
        </form>
      </div>
    </div>
  </div>
</div>

问题是,如果我欺骗了这段代码,我可以在没有验证的情况下发布帖子,对于第一次输入,我输入了20个字符,对于第二个输入,我输入了10个字符,按钮是启用的。

EN

回答 1

Stack Overflow用户

发布于 2017-07-17 23:33:51

您需要单独检查按钮的启用/禁用,其中还需要考虑其他字段是否有效。这两个字段都需要有效才能显示按钮,但在您的代码中,您只需检查当前正在键入的字段。

代码语言:javascript
复制
var titleLength = 0;
var titleMaxLength = 15;
var contentLength = 0;
var contentMaxLength = 10;

$('.new_post_title').keyup(function() {
  titleLength = $(this).val().length;
  if (titleLength > titleMaxLength) {
    $(".new_post_title_count").css('color','red');
    var character = titleLength;
    $('.new_post_title_count').text(character);
  } 
  else {
    $(".new_post_title_count").css('color','black');
    var character = titleMaxLength - titleLength;
    $('.new_post_title_count').text(character);
  }
  if (titleLength > titleMaxLength || contentLength > contentMaxLength) {
    $('.new_post_button').prop('disabled', true);
  }
  else {
    $('.new_post_button').prop('disabled', false);
  }
});

$('.new_post_content').keyup(function() {
  contentLength = $(this).val().length;
  if (contentLength > contentMaxLength) {
    $(".new_post_content_count").css('color','red');
    var character = contentLength;
    $('.new_post_content_count').text(character);
  } 
  else  {
    $(".new_post_content_count").css('color','black');
    var character = contentMaxLength - contentLength;
    $('.new_post_content_count').text(character);
  }
  if (titleLength > titleMaxLength || contentLength > contentMaxLength) {
    $('.new_post_button').prop('disabled', true);
  }
  else {
    $('.new_post_button').prop('disabled', false);
  }
});
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="modal fade" id="new_post_modal" tabindex="-1" role="dialog" aria-labelledby="new_post_modalLabel" aria-hidden="true">
  <div class="modal-dialog" role="document">
    <div class="modal-content">
      <div class="modal-body">
        <form>
          <div class="form-group">
            <label class="form-control-label">Title (Optional)</label>
            <input type="text" class="form-control new_post_title" placeholder="Make a title...">
            <span class="new_post_title_count"></span>
          </div>
          <div class="form-group">
            <label class="form-control-label">Content</label>
            <input type="text" class="form-control new_post_content" placeholder="Publish something...">
            <span class="new_post_content_count"></span>
          </div>
          <div class="form-group">
            <label class="form-control-label">Image</label>
            <input type="file" class="form-control-file">
          </div>
          <button class="btn btn-primary new_post_button">Post</button>
        </form>
      </div>
    </div>
  </div>
</div>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45147893

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档