目前,当用户选择文件时,它会直接上传到Parse。我现在已经添加了几个输入文本字段,例如个人姓名,我想要同时记录到Parse中的地址,只有当用户点击了当前用户选择文件后自动提交的选择按钮时
$(document).ready(function() {
// ***************************************************
// NOTE: Replace the following your own keys
// ***************************************************
Parse.initialize("id", "id");
function saveDocumentUpload(objParseFile) {
var documentUpload = new Parse.Object("Scan");
documentUpload.set("Name", "");
documentUpload.set("DocumentName", objParseFile);
documentUpload.save(null, {
success: function(uploadResult) {
// Execute any logic that should take place after the object is saved.
var photo = uploadResult.get("profileImg");
$("#profileImg")[0].src = photo.url();
},
error: function(uploadResult, error) {
// Execute any logic that should take place if the save fails.
// error is a Parse.Error with an error code and description.
alert('Failed to create new object, with error code: ' + error.description);
}
});
}
$('#documentFileUpload').bind("change", function(e) {
var fileUploadControl = $("#documentFileUpload")[0];
var file = fileUploadControl.files[0];
var name = file.name; //This does *NOT* need to be a unique name
var parseFile = new Parse.File(name, file);
parseFile.save().then(
function() {
saveDocumentUpload(parseFile);
},
function(error) {
alert("error");
}
);
});
});

<script src="http://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<script type="text/javascript" src="http://www.parsecdn.com/js/parse-1.2.15.min.js"></script>
<form>
<input type="file" id="documentFileUpload">
<br />
<input type="text" value="UserID">
<br />
<input type="text" value="Address">
<br />
<input type="submit" id="documentFileUpload" value="submit">
</form>
&#13;
更新2:
<HTML>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<script type="text/javascript" src="http://www.parsecdn.com/js/parse-1.2.15.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
// ***************************************************
// NOTE: Replace the following your own keys
// ***************************************************
Parse.initialize("id", "id");
function saveDocumentUpload(objParseFile)
{
var documentUpload = new Parse.Object("Scan");
documentUpload.set("Name", "");
documentUpload.set("DocumentName", objParseFile);
documentUpload.save(null,
{
success: function(uploadResult) {
// Execute any logic that should take place after the object is saved.
},
error: function(uploadResult, error) {
// Execute any logic that should take place if the save fails.
// error is a Parse.Error with an error code and description.
alert('Failed to create new object, with error code: ' + error.description);
}
});
}
$('#documentFileUploadButton').bind("click", function (e) {
var fileUploadControl = $("#documentFileUpload")[0];
var file = fileUploadControl.files[0];
var name = file.name; //This does *NOT* need to be a unique name
var parseFile = new Parse.File(name, file);
var user_id = $('#user_id').val();
var address = $('#address').val();
parseFile.set('UserId', user_id);
parseFile.set('Address', address);
parseFile.save().then(
function () {
saveDocumentUpload(parseFile);
},
function (error) {
alert("error");
}
);
});
});
</script>
<body><form>
<input type="file" id="documentFileUpload">
<br/>
<input type="text" placeholder="UserID" id="user_id">
<br/>
<input type="text" placeholder="Address" id="address">
<br/>
<input type="submit" id="documentFileUploadButton" value="submit">
</form>
</body>
</HTML>
**Updated 2:**
<HTML>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<script type="text/javascript" src="http://www.parsecdn.com/js/parse-1.2.15.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
// ***************************************************
// NOTE: Replace the following your own keys
// ***************************************************
Parse.initialize("pWG7YizRnwxRjplGT9RSLoHtFItDtvmc2EK0YJAe", "C2qlan3y2PXi6nwVbACGT6fY3CTus8oVEvNo889u");
function saveDocumentUpload(objParseFile)
{
var documentUpload = new Parse.Object("Scan");
documentUpload.set("Name", "");
documentUpload.set("DocumentName", objParseFile);
var user_id = $('#user_id').val();
var address = $('#address').val();
// create a pointer by assigning just an ID
var user = new Parse.User();
user.id = user_id;
documentUpload.set('User', user);
documentUpload.set('Address', address);
documentUpload.save(null,
{
success: function(uploadResult) {
// Execute any logic that should take place after the object is saved.
},
error: function(uploadResult, error) {
// Execute any logic that should take place if the save fails.
// error is a Parse.Error with an error code and description.
alert('Failed to create new object, with error code: ' + error.description);
}
});
}
$('#documentFileUploadButton').bind("click", function (e) {
var fileUploadControl = $("#documentFileUpload")[0];
var file = fileUploadControl.files[0];
var name = file.name; //This does *NOT* need to be a unique name
var parseFile = new Parse.File(name, file);
var user_id = $('#user_id').val();
var address = $('#address').val();
parseFile.set('UserId', user_id);
parseFile.set('Address', address);
parseFile.save().then(
function () {
saveDocumentUpload(parseFile);
},
function (error) {
alert("error");
}
);
});
});
</script>
<body><form>
<input type="file" id="documentFileUpload">
<br/>
<input type="text" placeholder="UserID" id="user_id">
<br/>
<input type="text" placeholder="Address" id="address">
<br/>
<input type="submit" id="documentFileUploadButton" value="submit">
</form>
</body>
</HTML>
答案 0 :(得分:1)
你有两次“documentFileUpload
”:
更改:强>
<form>
<input type="file" id="documentFileUpload">
<br />
<input type="text" value ="UserID"><br />
<input type="text" value ="Address"> <br />
<input type="submit" id="documentFileUpload" value="submit">
</form>
要强>
<form>
<input type="file" id="documentFileUpload">
<br />
<input type="text" value ="UserID"><br />
<input type="text" value ="Address"> <br />
<input type="submit" id="documentFileUploadButton" value="submit">
</form>
修改强>
要回答有关记录UserId和地址字段的评论,请参阅以下代码。我将文件上传绑定更改为按钮并绑定了click事件。这将修复您在选择时上传的文件。
另外,添加了id的user_id和地址,以允许jQuery从这些字段中获取值:
$('#documentFileUploadButton').bind("click", function (e) {
var fileUploadControl = $("#documentFileUpload")[0];
var file = fileUploadControl.files[0];
var name = file.name; //This does *NOT* need to be a unique name
var parseFile = new Parse.File(name, file);
var user_id = $('#user_id').val();
var address = $('#address').val();
parseFile.set('UserId', user_id);
parseFile.set('Address', address);
parseFile.save().then(
function () {
saveDocumentUpload(parseFile);
},
function (error) {
alert("error");
}
);
});
然后:
<form>
<input type="file" id="documentFileUpload">
<br/>
<input type="text" value="UserID" id="user_id">
<br/>
<input type="text" value="Address" id="address">
<br/>
<input type="submit" id="documentFileUploadButton" value="submit">
</form>
答案 1 :(得分:0)
问题是您的提交按钮,文件输入具有相同的ID。相应地更改ID并分别为它们分配事件。将提交事件分配给提交按钮,最终调用上传功能。
答案 2 :(得分:0)
除了发现和修复的其他问题之外,您还尝试将Parse.File
视为Parse.Object
。
您无法在Parse.File上调用set(column, value)
,因为它只是一个文件。保存文件后,将其作为列添加到对象中。
在您的情况下,这意味着UserID
和Address
列必须放在您的Scan
课程上。另外,我建议您将UserID
列更改为指针并将其命名为User
,因为它会使查询更容易,例如:
function saveDocumentUpload(objParseFile)
{
var documentUpload = new Parse.Object("Scan");
documentUpload.set("Name", "");
documentUpload.set("DocumentName", objParseFile);
var user_id = $('#user_id').val();
var address = $('#address').val();
// create a pointer by assigning just an ID
var user = new Parse.User();
user.id = user_id;
documentUpload.set('User', user);
documentUpload.set('Address', address);
documentUpload.save(null,
{
success: function(uploadResult) {
// Execute any logic that should take place after the object is saved.
},
error: function(uploadResult, error) {
// Execute any logic that should take place if the save fails.
// error is a Parse.Error with an error code and description.
alert('Failed to create new object, with error code: ' + error.description);
}
});
}