jQuery - prepending&将html附加到表单字段

时间:2012-10-16 09:47:22

标签: javascript jquery ruby-on-rails forms

我在Rails中使用时间轴,如果你在你在媒体领域写的东西周围放置blockquote标签,它将在时间轴上创建一个引用样式。我想要实现的是拥有一个复选框,这样如果选中它,它将为你添加blockquote标签,这样就不必指望用户编写html。

如何在提交之前在他们所写的内容周围添加blockquote标签,但仅在选中该复选框时?我正在尝试尝试让jQuery将标签预先/附加到输入字段,以便它们对用户可见,但我也无法使用它。但是,我希望它能让用户永远不会看到html(以防他们意外地编辑它!),以便在将它们发送到数据库之前简单地添加它们。

这是我到目前为止所做的:

$(document).ready(function(){
    $("#blockCheck").bind('click', function(){
        var input = $('#event_media input');
        if ($(this).prop('checked')){
            input.prepend('<blockquote>').append('</blockquote>');
        }
    });
});

该复选框的id为“blockCheck”,输入字段的id为“event_media”。非常感谢任何帮助,谢谢!

1 个答案:

答案 0 :(得分:0)

只需在输入值中添加反引号。

代码(已更新以删除引号,如果存在)link

$("a#sub").click(function() {
    var text = $("input").val();    
    $("div").html($("<blockquotes>").html(text));
});

$("a#rem").click(function() {
    var blockquotes = $("div blockquotes");
    var text = $(blockquotes).text(); //you have the text inside the blockquotes

    blockquotes.replaceWith(text); //this to replace or $(blockquotes).remove(); to remove it.

    //alert(html);
});

HTML

<input name="test">
<a id="sub">Submit</a>
<a id="rem">Remove</a>

<br/><br/>
<div></div>