0

ユーザーがテキストエリアを介してコメントできるフォームがあります。送信ボタンをクリックすると、テキストエリア内のテキストエリアに入力された値が返されます。これを変更して、送信時にテキストエリアの値がjqueryまたはphpでプレーンテキスト/段落として返されるようにするにはどうすればよいですか?

テキストエリアとボタンのコード:

<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

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 に答える
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();
});

エレメント ID を指定すれば[name="reply_for_{$item.id}"]、jQuery のすべての問題について心配する必要はありません。それも速くなります。

于 2013-02-13T22:23:55.923 に答える