2013-03-11 28 views
6

我有一個JavaScript來檢查一個字段是否等於15個字符,如果不是提交按鈕是灰色的。這可以perfetcly,如果我手動鍵入15個字符,但不是如果我粘貼15個字符。即使當內容粘貼在字段中時,我如何檢查它?「KeyPress」和「粘貼」的Javascript觸發器

我可以讓它定期檢查字符(秒)還是有「檢查粘貼」功能?

我的腳本:

<script type="text/javascript"> 
jQuery(document).ready(function($){ 
$('input[type=submit]').attr("disabled","disabled"); 
$('input[name="item_meta[1234]"]').keypress(function() { //change # to the ID of your field 
     if (document.getElementById("field_ygtw9u").value.length < 14) { //disable submit if "no" is selected 
       $('input[type=submit]').attr("disabled","disabled"); 
     } else { //enable the submit button 
       $('input[type=submit]').removeAttr('disabled'); 
     } 
    }); 
}); 
</script> 

<form> 
<div id="frm_field_1234_container" class="frm_form_field form-field frm_required_field frm_top_container"> 
<label class="frm_primary_label">Minimun 15 char: 
    <span class="frm_required"></span> 
</label> 
<input type="text" id="field_ygtw9u" name="item_meta[1234]" value="" maxlength="15" class="required"/> 

<p class="submit"> 
<input type="submit" value="Submit" /> 
</p> 
</form> 
+0

更多代碼請 – fnkr 2013-03-11 07:59:35

+0

你的意思是?那就是所有的代碼。如果有幫助,我還會添加上面的HTML嗎? – hrdy 2013-03-11 08:10:57

+0

嘗試onpaste事件? ''。讓我知道它是否有幫助。 – fnkr 2013-03-11 08:23:37

回答

9

變化keypresskeyup,它應該工作。

+0

這工作就像一個魅力。現在它驗證手動和粘貼輸入的輸入。謝謝!因爲這個解決方案最簡單,並且在IE和Chrome中都能解決,所以找到了這個解決方案。 – hrdy 2013-03-11 09:29:24

0

您應該使用propertychange(IE)和input事件。 Live Demo

$('input[name="item_meta[1234]"]').bind("input", function() { //change # to the ID of your field 
    if (document.getElementById("field_ygtw9u").value.length < 14) { //disable submit if "no" is selected 
      $('input[type=submit]').attr("disabled","disabled"); 
    } else { //enable the submit button 
      $('input[type=submit]').removeAttr('disabled'); 
    } 
}); 

$('input[name="item_meta[1234]"]').bind("propertychange", function() { //change # to the ID of your field 
    if (document.getElementById("field_ygtw9u").value.length < 14) { //disable submit if "no" is selected 
      $('input[type=submit]').attr("disabled","disabled"); 
    } else { //enable the submit button 
      $('input[type=submit]').removeAttr('disabled'); 
    } 
}); 
1

嘗試像

var $submit = $('input[type=submit]').attr("disabled","disabled"); 
$('input[name="item_meta[1234]"]').keyup(function() { //change # to the ID of your field 
    var $this = $(this); 
    if ($this.val().length < 14) { //disable submit if "no" is selected 
     $submit.attr("disabled","disabled"); 
    } else { //enable the submit button 
     $submit.removeAttr('disabled'); 
    } 
    }); 

$('#field_ygtw9u').on('paste', function(e){ 
    var $this = $(this); 
    setTimeout(function() { 
     if ($this.val().length < 14) { //disable submit if "no" is selected 
      $submit.attr("disabled","disabled"); 
     } else { //enable the submit button 
      $submit.removeAttr('disabled'); 
     } 
    }, 0); 
}); 

演示:Fiddle

而在IE/Chrome的

backspace
1

測試,使用時,不要使用keypress事件,因爲它不會被解僱。小提琴:http://jsfiddle.net/fnkr/MXnuk/

<script type="text/javascript"> 
    function checkInput() { 
     if (document.getElementById("field_ygtw9u").value.length < 14) { //disable submit if "no" is selected 
       $('input[type=submit]').attr("disabled", "disabled"); 
      } else { //enable the submit button 
       $('input[type=submit]').removeAttr('disabled'); 
      } 
    } 

    jQuery(document).ready(function ($) { 
     $('input[type=submit]').attr("disabled", "disabled"); 
     $('input[name="item_meta[1234]"]').bind("input", function() { //change # to the ID of your field 
      checkInput();  
     }); 

     $('input[name="item_meta[1234]"]').bind("propertychange", function() { //change # to the ID of your field 
      checkInput(); 
     }); 
    }); 
</script> 

<form> 
    <div id="frm_field_1234_container" class="frm_form_field form-field frm_required_field frm_top_container"> 
     <label class="frm_primary_label">Minimun 15 char: <span class="frm_required"></span> 

     </label> 
     <input type="text" id="field_ygtw9u" name="item_meta[1234]" value="" maxlength="15" 
     class="required" /> 
     <p class="submit"> 
      <input type="submit" value="Submit" /> 
     </p> 
</form>