无法使用jquery .append(data)as .val(append(data))

时间:2015-09-12 21:25:59

标签: javascript jquery ajax

我正在尝试使用JQuery .append(data)成功使用它来将输入的值更改为附加数据:.val(append(data))但是在我可以成功将值更改为字符串时不起作用.val("Hello")而不是更改值以附加数据..! 所以,如果有人可以帮助请... 以下是完整的代码:

<script type="text/javascript">
    $(document).ready(function (e) {
        $('.upload').on('submit', (function (e) {
            e.preventDefault();
            var formData = new FormData(this);

            $.ajax({
                type: 'POST',
                url: $(this).attr('action'),
                data: formData,
                cache: false,
                contentType: false,
                processData: false,
                success: function (data) {
                    $(".no_image").css("display", "none"),
                    $(".show_image").css("display", "block"),
                    $(".profile_photo").val(append(data)),
                    $(".image").attr("src", "client_images/" + append(data));
                },
                error: function (data) {
                    console.log("error");
                    console.log(data);
                }
            });
        }));

        $(".inputFile").on("change", function () {
            $(".upload").submit();
        });
    });
</script>

表格代码为:

<div class="bgColor">
    <form id="uploadForm" class="upload" action="upload_image.php" method="post">
        <div id="targetLayer" class="target" style="width: 28%;height: 0%;">
            <div class="no_image" style="display:block;">No Image</div>
            <div class="show_image" style="display:none;">
                <img class="image" src="" width="100px" height="100px">
            </div>
        </div>
        <div id="uploadFormLayer">
            <label>Upload Image File:</label>
            <br/>
            <input name="userImage" id="userImage" type="file" class="inputFile" />
    </form>
    </div>
</div>
<fieldset>
    <input name="profile_photo" class="profile_photo" type="text"/>
</fieldset>

1 个答案:

答案 0 :(得分:2)

没有全局append函数,append是一个jQuery方法,即你只能在jQuery对象上调用它。如果要将字符串附加到输入的当前值,可以使用val的回调函数:

// ...
$(".profile_photo").val(function(index, currentValue) {
    return currentValue + data;
});
// there is no need to call a non-existent `append` function
// for string concatenation, `+` does the trick
$(".image").attr("src", "client_images/" + data);

对于jQuery集合中的每个元素,val方法的回调函数执行一次。回调函数的第一个参数是当前迭代的index。第二个参数是元素的当前值。在上面的代码段中,input的当前值与data变量连接在一起。函数的返回值用于设置元素的值。