我试图成功使用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>
最佳答案
没有全局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);
val
方法的回调函数对jQuery集合中的每个元素执行一次。回调函数的第一个参数是当前迭代的index
。第二个参数是元素的当前值。在上面的代码片段中,input
的当前值与data
变量连接在一起。函数的返回值用于设置元素的值。