如果输入(no1)为空,则禁用输入(no2)

时间:2013-04-10 22:23:56

标签: javascript html

HTML

<input type="text" name="year" autofocus onkeypress='validate(event)'><br>
<input type="text" name="month" onkeypress='validate(event)'><br>

的JavaScript

 <script type="text/javascript">
function validate(evt) {
  var theEvent = evt || window.event;
  var key = theEvent.keyCode || theEvent.which;
  key = String.fromCharCode( key );
  var regex = /[0-9]|\./;
  if( !regex.test(key) ) {
    theEvent.returnValue = false;
    if(theEvent.preventDefault) theEvent.preventDefault();
  }}
</script>

如果输入(名称“年份”)为空,如何禁用(阻止在文本框中写入数字)输入(名称“月”)?当然,如果我输入一年,如何启用(允许编号)?

2 个答案:

答案 0 :(得分:0)

默认设置月份输入已禁用,因为我认为最初年份将具有空值

<input type="text" name="mounth" onkeypress='validate(event)' disabled='disabled'>

现在编写模糊和按键事件处理程序

var month_input = document.getElementById('month'); 
var year_input = document.getElementById("year"); 
year_input.onblur = function(){ 
 if (this.value == '') { 
   month_input.setAttribute('disabled',true); 
 } 
}
year_input.onkeypress = function(){ 
  if (this.value!= ''){ 
    month_input.setAttribute('disabled',false); 
  } 
}

我不确定onblur是否有效,因为如果它起作用我感到困惑,我们也可能需要onfocus事件处理程序。我没有测试过!!

答案 1 :(得分:0)

这是一个与@prabeen giri非常相似的解决方案:

HTML需要稍加修改,如下所示:

<form>
 <div>
  <input type="text" name="year" autofocus="autofocus" onkeypress="javascript:validate(event);"><br>
  <input type="text" id='monthinput' name="mounth" onkeypress='javascript:validate(event)' disabled="true"><br>
 </div>
</form>

然后我们添加代码来获取月份输入,并设置“禁用”属性。我们可以删除evt.preventDefault()代码,因为我们希望人们能够输入。

function validate(evt) {
  var theEvent = evt || window.event,
      regex    = /[0-9]|\./,
      monthel  = document.getElementById('monthinput'),
      key      = theEvent.keyCode || theEvent.which;
  key = String.fromCharCode( key );
  if ( !regex.test(key) ) {
      monthel.setAttribute('disabled', 'disabled');
  } else {
      monthel.removeAttribute('disabled', "");
  }
}

我实际测试了这个,它确实有效。但是,如果您对显示/隐藏输入更感兴趣,具体取决于它是否有效,我写了jQuery plugin that makes showing/hiding form sections easy。显然它需要jQuery。