2014-01-20 33 views
1

我知道我的PHP,但我只有非常基本的JavaScript知識,可能是因爲我儘量避免使用JavaScript,因爲總有訪問者禁用JavaScript的風險瀏覽器...但是現在我需要一個HTML格式的特定任務,只能通過JavaScript來解決。當點擊textarea時選擇複選框(JavaScript?)

我有一個textarea和一個複選框。加載頁面時默認選中該複選框。 我希望複選框在用戶點擊textarea內部時自動取消選中。 如果用戶點擊textarea外的任何地方,並且出於某種原因沒有在textarea中寫入任何內容,我希望複選框再次被選中。

我試圖搜索涵蓋此但尚未能找到解決方案(可能是因爲我缺乏JavaScript技能,我可能不會使用正確的搜索條件)的指南和教程。

任何人都對我有任何建議,我會很棒!

回答

0
<!DOCTYPE html> 
<html> 
<body> 
<textarea id="iamtextarea" rows="4" cols="10" onfocus="onFocusTextArea();" onblur="onBlurTextArea();"></textarea> 
<input type="checkbox" name="iamcheckbox" id="iamcheckbox" checked="checked"> I am checkbox<br> 
</body> 
</html> 

<script type="text/javascript"> 

function onFocusTextArea(){ 
document.getElementById("iamcheckbox").checked = false; 
} 
function onBlurTextArea(){ 
    if(document.getElementById("iamtextarea").value==""){ 
    document.getElementById("iamcheckbox").checked = true; 
    } 
} 
</script> 

運行上面的代碼它會做所需的工作!

Iinjoy!

現在你必須添加一個隱藏字段,並在onBlurTextArea功能有一定的變化,看下面的代碼:

<html> 
<body> 
<textarea id="iamtextarea" rows="4" cols="10" onfocus="onFocusTextArea();" onblur="onBlurTextArea();">Enter some text in textbox</textarea> 
<input type="checkbox" name="iamcheckbox" id="iamcheckbox" checked="checked"> I am checkbox<br> 
<input type="hidden" name="hiddenString" id="hiddenString" value="Enter some text in textbox"> 
</body> 
</html> 

<script type="text/javascript"> 

function onFocusTextArea(){ 
document.getElementById("iamcheckbox").checked = false; 
} 
function onBlurTextArea(){ 
    if(document.getElementById("iamtextarea").value==document.getElementById("hiddenString").value){ 
    document.getElementById("iamcheckbox").checked = true; 
    } 
} 
</script> 
+0

是否有可能增加對這樣的: IF「iamtextarea」爲空字符串或默認字符串 到上面的代碼? –

+0

告訴我dafault字符串...我將編輯答案 – Anubhav

+0

默認字符串來自數據庫條目並作爲php變量回顯:<?= $ iamdefaultstring?>。默認字符串可以另一種形式編輯,以便一組用戶可以編輯默認文本應該是什麼,另一組用戶可以選擇使用默認文本或用自己的默認文本覆蓋它。 –

0

考慮您的標記是

<textarea id="txtAr"></textarea> 
<input type="checkbox" id="chkBx"> 

然後JS,

(function() { 
    var oTxt = document.getElementById('txtAr'), 
     oChk = document.getElementById('ChkBx'); 

    oTxt.addEventListener('click', function() { 
     oChk.removeAttribute('checked'); 
    }, false); 
}()); 

應該做的工作。

0

Torbjörn。

首先我建議你忘記使用Javascript的擔心。 想一點。如果用戶在他的瀏覽器中禁用了js,他將不會使用任何網站..所以如果他想使用你的或任何其他的,他將啓用它。

讓我們的問題..

我會說,最簡單的方式來做到這一點..

<body onclick="if(document.getElementById('area').value == '') document.getElementById('chk').checked = false;"> 
    <form> 
     <textarea id="area" onclick="document.getElementById('chk').checked = true"></textarea> 
     <input type="checkbox" id="chk"> 
    <form> 
</body> 

我沒有測試這個解決方案,但我認爲它應該工作。 例如,您可以使用.trim()和其他東西做比這更好的事情。

但是這可以幫助您現在。

希望它有幫助。

相關問題