【问题标题】:run $.ajax() when end typed with format specified. how is it?以指定格式输入结束时运行 $.ajax()。如何?
【发布时间】:2011-07-19 15:54:01
【问题描述】:

我想,当用户输入时,0000/00/00(它是格式日期)在输入结束后运行任何东西(例如:AJAX CALL),怎么样?

like:
if user typed: 2011/05/04 -> run: $.ajax()...
if user typed: 2011/05 -> not run: $.ajax()...
...

运行 $.ajax() 的唯一方法是真正输入这种格式 0000/00/00。
我希望你明白我的目的。
尊重。

【问题讨论】:

  • 他在哪里输入之后?

标签: javascript jquery jquery-effects typeof


【解决方案1】:

HTML:

<input type="text" name="datefield" onchange="validateField(this)" />

JS:

function validateField() {
   var val = this.value;
   if (val.length < 10) {
      return;
   }
   if (!val.match(/\d\d\d\d\/\d\d\/\d\d/)) {
      return;
   }
   ... do ajax call here
}

【讨论】:

  • 您必须小心,因为这也将匹配“blah blah 2011/02/04”。如果唯一允许的内容是日期,您将需要执行 /^\d\d\d\d\/\d\d\/\d\d$/。
  • 确实如此,只是一个快速/肮脏的例子。
【解决方案2】:
$("inputTextBoxSelector").keyup(function(e){
  if($(this).val().match(/\d\d\d\d\/\d\d\/\d\d/){
    $.ajax(....);
    return false;
  }
})

【讨论】:

    【解决方案3】:

    你可以...

    $('input').change(function(e) {
      var val = $(this).val();
      if ( val.length == 10 ) {
        if( val.match(/^\d{4}\/\d{2}\/\d{2}$/) ) {
          $.ajax();
        }
      }
    });
    

    您也可以尝试使用 keyup 代替更改。

    【讨论】:

      猜你喜欢
      • 2020-12-10
      • 1970-01-01
      • 2022-07-22
      • 1970-01-01
      • 2011-05-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-20
      相关资源
      最近更新 更多