我有2個複選框和2個用於郵件和電話的輸入標籤。勾選/取消勾選複選框時禁用輸入
我的要求是,我希望在檢查郵件時禁用電話輸入,反之亦然。但在檢查兩個複選框時,我想保持兩個輸入都啓用。
這是我的fiddle。這是代碼不能在小提琴上工作,因爲我從來沒有用過它。但它正在我的本地主機上工作。
問題是,當我檢查兩個盒子然後檢查 - 取消檢查很多次時,它工作不正常。
HTML
<input type="checkbox" id="check_email" name="check_email" onchange="disablePhone()" /> Email
<input type="checkbox" id="check_phone" name="check_phone" onchange="disableEmail()" /> Phone
腳本
var chk_mail = 0;
var chk_phone = 0;
var unchk = 0;
function disablePhone()
{
if(unchk == 1)
{
document.getElementById("ref_email").disabled = true;
unchk = 0;
//alert("disablePhone")
}
if(chk_mail == 0 && unchk == 0)
{
if(document.getElementById("check_email").checked == true)
{
document.getElementById("form-field-phone").disabled = true;
chk_mail = 1;
}
}
else if(chk_mail == 1 && unchk == 0)
{
document.getElementById("check_email").checked = false;
document.getElementById("form-field-phone").disabled = false;
chk_mail = 0;
}
if(chk_phone ==1 && chk_mail == 1)
{
document.getElementById("ref_email").disabled = false;
document.getElementById("form-field-phone").disabled = false;
chk_phone = 0;
unchk = 1;
}
}
function disableEmail()
{
if(unchk == 1)
{
document.getElementById("form-field-phone").disabled = true;
unchk = 0;
//alert("disableEmail")
}
if(chk_phone == 0 && unchk == 0)
{
if(document.getElementById("check_phone").checked == true)
{
document.getElementById("ref_email").disabled = true;
chk_phone = 1;
}
}
else if(chk_phone == 1 && unchk == 0)
{
document.getElementById("check_phone").checked = false;
document.getElementById("ref_email").disabled = false;
chk_phone = 0;
}
if(chk_phone ==1 && chk_mail == 1)
{
document.getElementById("ref_email").disabled = false;
document.getElementById("form-field-phone").disabled = false;
chk_phone = 0;
unchk = 1;
}
}
走出聯事件聲明青睞!太老了! – 2014-09-20 11:44:36
您的代碼在我的本地瀏覽器中表現良好。我認爲可能是JSFiddle兼容性有問題。 – 2014-09-20 12:43:21
是的,可能是。 – Akshay 2014-09-20 12:51:34