我正在尝试使用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>
答案 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
变量连接在一起。函数的返回值用于设置元素的值。