0

我有一个表单,用户可以通过文本区域进行评论。如果单击提交按钮,它将返回在文本区域内的文本区域中输入的值。我该如何更改它,以便在提交时将 textarea 的值作为带有 jquery 或 php 的纯文本/段落返回?

textarea 和按钮的代码:

<textarea rows="6" cols="40" scroll="auto" name="reply_for_{$item.id}">
    {if isset($item.reply)}
        {$item.reply}
    {/if}
</textarea>
<br />
<input name="addcomment" value="{lang mkey='submit'}" type="button" onclick="
    document.forms['commentsFrm'].id.value={$item.id};
    document.forms['commentsFrm'].submit(); 
"/>
4

3 回答 3

0
$('input[name="addcomment"]').on('click',function(){
     var comment = $('textarea').val();
     $('textarea').remove(); // removes the textarea
     var actContent = $(this).parent().html(); // get the actual content of the parent dom node.
     $(this).parent.html('<p>'+comment+'</p>'+actContent); // you set the new html content for the parent dom node

});

因此,这将获取 textarea 内容并将其保存到一个段落中。有点尴尬的解决方案,但它应该有魔力。

于 2013-02-13T22:21:52.103 回答
0

有很多方法可以做到这一点,但这是我想到的:

$('input[name="addcomment"]').on('click', function() {
    var textArea = $('textarea[name="reply_for_{$item.id}"]');
    var text = textArea.val();
    $('<div id="no-editing-me">').text(text).insertAfter(textArea);
    textArea.hide();
});

如果你给你的元素 IDs,你就不必担心[name="reply_for_{$item.id}"]jQuery 中的所有垃圾。它也会更快。

于 2013-02-13T22:23:55.923 回答
0

2个答案部分解决了问题。然而它给了我一些新的灵感,我这样解决了

{if $item.reply == ''}
<form name="reply" method="post" action="reply">
    <textarea id="txtreply" name="txtreply" cols="50" rows="5"></textarea>
    <input type="submit" name="btnAdd" value="{lang mkey='send'}" />
</form>

{else}

{$item.reply}

{/if}

谢谢大家的帮助

于 2013-03-06T20:13:04.877 回答