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>
如果输入(名称“年份”)为空,如何禁用(阻止在文本框中写入数字)输入(名称“月”)?当然,如果我输入一年,如何启用(允许编号)?
答案 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。