Jquery .val()不适用于firefox

时间:2013-08-24 00:08:03

标签: javascript jquery html css firefox

我有一个textarea,用户可以在其中键入注释并按Enter键提交注释,然后应该清除textarea的文本并显示占位符,以便我使用此功能

<tr id="SC-1-Comment" style="background-color:white;">
<td colspan="2">
    <textarea id="id_COMMENT_to_POST-1" name="Comment" style="resize: none; vertical-align: middle;" placeholder="Leave a comment..." 
        onkeydown="
        if (event.keyCode == 13 && !event.shiftKey) 
        {
            event.preventDefault();
            NEW_COMMENT('commentsinnerhtml-1', '1',document.getElementById('id_COMMENT_to_POST-1').value); 
            $('#id_COMMENT_to_POST-1').val('');
        }
        "></textarea>
</td>

在chrome和IE中它可以工作,但在Firefox中,它最终会清除文本并在textarea中插入一个新行,因此占位符不会出现,因为textarea中有一个新行。

有什么建议吗?

2 个答案:

答案 0 :(得分:1)

尝试使用vanilla JavaScript方法,保持简洁。

document.getElementById("text-area-id").value = '';

无法想象为什么它不起作用。

答案 1 :(得分:0)

我解决了它,它不是DOM或任何东西,我只需要使用settimeout间隔,我不知道为什么,但可能Web浏览器只需要两个操作之间的几毫秒。 这是新代码

<tr id="SC-@ep.POST_ID-Comment" style="background-color:white;">
<td colspan="2">
    <textarea id="id_COMMENT_to_POST-@ep.POST_ID" name="Comment" style="resize: none; vertical-align: middle;" placeholder="Leave a comment..." 
        onkeydown="
        if (event.keyCode == 13 && !event.shiftKey) 
        {
            event.preventDefault();

            var post = document.getElementById('id_COMMENT_to_POST-@ep.POST_ID').value;

            $('#id_COMMENT_to_POST-@ep.POST_ID').val('');

            setTimeout(function () {
            NEW_COMMENT('commentsinnerhtml-@ep.POST_ID', '@ep.POST_ID', post);
            },100);
        }
        "></textarea>
</td>