Javascript不要从textarea更改

时间:2016-07-08 08:42:38

标签: javascript jquery

我想从div容器中获取所有HTML,将其放在隐藏字段中的值中,然后将其显示给具有相同CSS样式但没有textareas标记的用户。

我想要显示来自文本字段(textarea)的值,而不是textareas!到目前为止一切都很好!

但是当更改textareas中的信息时,我的javascript代码不会从该字段中获取新信息。

我的代码出了什么问题?

<!DOCTYPE html>
<html>
    <head>
        <title>Test</title>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <script src="//code.jquery.com/jquery-1.10.2.min.js"></script>
    </head>
    <body>
        <?php
        if(isset($_POST['save'])){
            $scrita = $_POST['hid'];
            $scritaInsert = strip_tags($scrita, '<p><n><nz><font><bl><br><r><chh>');
            echo $scritaInsert;
            exit; //just for the test
        }
        ?>
        <form method="POST">
            <input type="submit" name="save" class="btn-style" value="Save" id="submitContainer"/>
            <input type="hidden" name="hid" id="hid"/>
        </form>
        <div id="container">
            <p style="text-align: center;font-weight: bold;font-size: 23px;color: black;">CocaCola</p>
            <p style="text-align: center; color: black; font-size:16px; text-decoration: underline;">
                The address
            </p>

            <p style="font-weight: bold; color: black;">
                To: <textarea name="do" style="width: 920px; max-width: 100%; height: 18px;">CocaCola Company</textarea>
            </p>

            <p style="font-weight: bold; color: black;">
                Attention: <textarea  name="vnimanieto" style="width: 830px; max-width: 100%; height: 18px;">CocaCola Company</textarea>
            </p>

            <p style="text-align: center;font-weight: bold;font-size: 19px;color: black;">
                CONTRACT<br>
            <n style="text-align: center;font-size: 16px;color: black;">
                For transport
            </n><br>
            <nz style="text-align: center;">№<textarea name="nomer" style="width: 60px; max-width: 100%; height: 18px;">1737</textarea>
                Date:<textarea name="date" style="width: 90px; max-width: 100%; height: 18px;" id="date">25.05.2016</textarea>
            </nz>
        </p>
    </div>
    </body>
</html>
<script type="text/javascript">
    $('#submitContainer').click(function(){
         $('.picker').html('');
        var content = $('#container').html();
        $('#hid').val(content);
    });
</script>

3 个答案:

答案 0 :(得分:0)

我认为您应该使用方法text()而非html(),因为html()只会复制包含HTML标记的所有文字,但text()只会复制真实的文本。

查看此fiddle

答案 1 :(得分:0)

我认为您的问题可能是html斜杠的类型:

尝试:

String.prototype.stripSlashes = function(){
    return this.replace(/\\(.)/mg, "$1");
}

$('#submitContainer').click(function(){
    $('.picker').html('');
    var content = $('#container').html();
    $('#hid').val(content.stripSlashes());
});

答案 2 :(得分:0)

我已将JavaScript更改为以下代码,现在它正常运行:

autoplay