下圖是後端回傳的內容
會顯示在表格的teatarea中
點擊紅字後的圖示如下
回傳內容的寫法如下
echo "<font color='red' id='red' onclick='clear()'><strong>重新編輯</strong></font>";
希望點擊紅字時會清空textarea讓使用者可直接重新編輯
前端寫法如下
function clear()
{
document.getElementById("red").value = '';
}
但仍無法清空,請教一下大家......謝謝
點擊「重新編輯」觸發clear()
清空textarea
?
那你的clear()
要指定的ID必須是textarea
的ID
function clear()
{
document.getElementById("這裡是textarea的ID").value = '';
}
建議先去看看jeditable的文件,可能本來就有提供clean()或reset()之類的方法也說不定
或是可以自己hack,用開發者工具找一下這個textarea的id是什麼
沒有id也沒有class的話,不妨考慮自己在外面包一層div,你就可以抓到div裡面的textarea,類似這樣
var container = document.getElementById('outer_div');
// 這邊有可能會抓到複數個有符合條件的tag
var innerTextareas = container.getElementsByTagName('textarea');
// 視情況再做判斷,或肯定只有一個就是[0]
innerTextareas[0].value = '';
不好意思,有id這個參數~
參考您的方式把id給textare但目前還無法加上去
我改成用name清空如下
function clear()
{
document.getElementsByName("value").value = "";
}
html如下
但還是無法成功,請問↑這個方式哪裡有錯誤嗎?謝謝
getElementsByName()
從名稱上也可以看出來,是複數,用console.log()
看一下實際究竟抓到什麼東西吧,沒意外是一個array,你得給他正確的index才會取到你要的東西function clear()
{
var textareaArray = document.getElementsByName("value");
textareaArray[0].value = "";
}
應該用textarea的id, 不是font的id
建議使用jquery會比較容易做,只需要兩個步驟
<script type="text/javascript" src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
<script>
$(function () {
$(table).on('click', '#red', function() {
$(this).find('teatarea').val('');
});
});
</script>
謝謝~但我的textarea是使用jeditable套件,裡面好像沒有可以給id的參數?還是請問有建議其他方法嗎?謝謝
有問題再說~
謝謝
https://appelsiini.net/projects/jeditable/
1.有給id的參數啊。
(String) id: Name of the submitted parameter which contains content id. Default is id.
2.看來jeditable也是用jQ,既然載入了建議就都用jQ來寫。
用jquery就不用管id了,直接套用上面的程式,應該可以執行
謝謝,參考您的方式修改如下,但還是不行,請幫忙看看......(感激)
回傳內容的寫法如下
echo "<font color='red' onclick='clear()'><strong>重新編輯</strong></font>";
清空teatarea
$(function clear() {
$(table).on('click', '#red', function() {
$(this).find('teatarea').val('');
});
});
teatarea
(X)textarea
(O)
還是不行@@
測試過應該可以了
onclick不需要了
echo "<font color='red'><strong>重新編輯</strong></font>";
html
<table>
<tr>
<td>
<font id="red" color='red'><strong>重新編輯</strong></font>
<textarea>
test
</textarea>
</td>
</tr>
</table>
另外js改成
$(function clear() {
$(table).on('click', 'font', function() {
$(this).find('textarea').val('');
});
});
1.$(選擇子).on("事件"...)的寫法,不需要在html裡加上 onclick=
2.你又用一個function包,然後打包成jQ,這樣當然不會成功。
3.「font」在html5已經被廢棄了,建議不要使用。
4.請參閱jQuery的css selector,並搞懂他。
5.先去惡補一下jQ吧?
echo "<span class='red'><strong>重新編輯</strong></span>";
// css:
<style>
.red{color: red;}
</style>
// js:
<script>
$(".red").click(function(){
$(this).text("");
});
</script>
document.getElementsByName("value")[0].innerText = "";
我剛試過用innerText可以,
value也可以,
另外有一個問題,
clear似乎是保留字,
我用clear不行,
另外隨便取一個名字就可以了。