我是jQuery的新手。任何帮助将不胜感激
我有两个单选按钮和两个文本框,其中我使用jquery显示日期。
当我点击Radio1然后在文本框中我应该能够选择日期但是当我点击Radio2然后我不能在text2字段中选择日期。应该禁用text2字段,并且jquery日期选择器不应该工作。
我已禁用text2字段,但日期功能仍然有效。
-
<script language='javascript'>
<!-- //
function setReadOnly(obj)
{
if(obj.value == "yes")
{
document.forms[0].text2.style.backgroundColor = "#ffffff";
document.forms[0].text2.readOnly = 0;
document.forms[0].text2.value = "";
} else {
document.forms[0].text2.style.backgroundColor = "#eeeeee";
document.forms[0].text2.readOnly = 1;
document.forms[0].text2.value = "Not applicable!";
document.forms[0].number = disbaled;
}
}
// -->
</script>
<script>
$(document).ready(function() {
$("#text1").datepicker
({
showOn: 'button', buttonImage: 'images/cal.gif', buttonImageOnly: true,
dateFormat: 'dd-mm-yy',
numberOfMonths: 2,
minDate:0
})
$("#text2").datepicker
({
showOn: 'button', buttonImage: 'images/cal.gif', buttonImageOnly: true,
dateFormat: 'dd-mm-yy',
numberOfMonths: 2,
minDate:1
})
})
</script>
</head>
<body>
<form>
<input type=radio name="update" value="yes" checked onclick="setReadOnly(this)">
Radio1 <br />
<input type=radio name="update" value="no" onclick="setReadOnly(this)">
Radio2 <br />
<input name="text1" type="text">
<input name="text2" type="text">
<select name="number">
<option value="11">11</option>
<option value="12">12</option>
</select>
</form>
答案 0 :(得分:15)
在jQuery方式中,您必须将setReadOnly函数代码中的代码更改为:
function setReadOnly(obj){
if(obj.value == "yes"){
$('#text2').css('backgroundColor','#ffffff');
$('#text2').removeAttr('readOnly');
$('#text2').val('');
$('#text2').datepicker('enable');
$('#number').removeAttr('disabled');
}
else {
$('#text2').css('backgroundColor','#eeeeee');
$('#text2').attr('readonly','readonly');
$('#text2').val('Not applicable!');
$('#text2').datepicker('disable');
$('#number').attr('disabled',true);
}
}
编辑:虽然上面的代码工作得很好,正如@Deviant所指出的,相关的方法可以被链接以充分利用jQuery的强大功能。
function setReadOnly(obj){
if(obj.value == "yes"){
$('#text2').css('backgroundColor','#ffffff')
.removeAttr('readonly')
.val('')
.datepicker('enable');
$('#number').removeAttr('disabled');
}
else {
$('#text2').css('backgroundColor','#eeeeee')
.attr('readonly','readonly')
.val('Not applicable!')
.datepicker('disable');
$('#number').attr('disabled',true);
}
}
答案 1 :(得分:0)
在setReadOnly()
功能
function setReadOnly(obj) {
$("#text1").datepicker('disable');
$("#text2").datepicker('disable');
}
答案 2 :(得分:0)
在焦点上调用datepicker。以下代码将根据您的条件停止此操作
$("#text2").bind('focus', function (e) {
var value = $('input[name=update]:checked').val();
if (value == "no")
e.stopImmediatePropagation();
});