在我的应用程序中,我使用了salesforce数据库。单击按钮后,我需要更新“任务状态”字段。我使用html文件中的代码来获取newStatus-
<a id="btnTaskUpdateStatus" href="#task_status_change_page" data-rel="popup" data-position-to="window" data-transition="pop">
<img src="images/task_edit24.png" width="32" height="32" />
</a>
<div data-role="popup" id="task_status_change_page" data-overlay-theme="a" data-theme="c" style="width:280px !important">
<script>$('select').selectmenu({ preventFocusZoom: true });</script>
<div data-role="header" data-theme="b">
<h1>Update Status</h1>
</div>
<div data-role="content" data-theme="d">
<div data-role="fieldcontain">
<label for="select-task-status" class="select"><strong>Status:</strong></label>
<select id="select-task-status" name="select-status" class="selectmenu">
<option value="Not Started">Not Started</option>
<option value="In Progress">In Progress</option>
<option value="Completed">Completed</option>
<option value="Waiting On someone else">Waiting On someone else</option>
<option value="Deffered">Deferred</option>
</select>
</div>
<div data-role="controlgroup" data-type="horizontal" class="center-wrapper">
<a id="btnTaskUpdateSubmit" data-role="button" data-inline="true" data-direction="reverse" data-rel="back" >Submit</a>
</div>
</div>
</div>
现在在js文件中,我使用了代码-
$ j('#btnTaskUpdateStatus')。click(function(e){
var recordId = $ j('#TaskRecordId')。val();
如果(recordId!= null){
var currStatus = $ j('#TaskStatus')。text();
updateHTMLVal('#select-task-status',currStatus);
$('#select-task-status')。selectmenu('refresh');
}
$ j('#btnTaskUpdateSubmit')。click(function(e){
var newStatus = $(“#select-task-status”)。val();
如果(newStatus!= currStatus){
changeTaskStatus(recordId,newStatus,creds);
$('#select-task-status')。selectmenu('refresh');
$('#TaskStatus')。html(newStatus);
}
});
});
函数changeTaskStatus(Id,newStatus){
var fields = {};
fields [“ Status”] = newStatus;
forcetkClient.update('任务',ID,字段,函数(响应){
alert(“更新”);
},onErrorSfdc);
}
现在我的问题是,当我更新状态时,它会正确更新,但是下次我再次更改此函数调用的另一个任务“
$j('#btnTaskUpdateSubmit').click(function(e){
”的状态两次时,新任务的状态将覆盖先前任务的状态。如果我的问题不清楚,请指导我如何以您的方式更新任务状态。
提前致谢。任何帮助表示赞赏。
最佳答案
您可能正在将函数堆叠到$ j('#btnTaskUpdateSubmit')元素上。在添加新的Click事件处理程序之前,请尝试删除该事件。像这样:
$j('#btnTaskUpdateStatus').click(function(e) {
var recordId = $j('#TaskRecordId').val();
if (recordId != null ) {
var currStatus = $j('#TaskStatus').text();
updateHTMLVal('#select-task-status', currStatus);
$('#select-task-status').selectmenu('refresh');
}
// Remove any existing click handlers
$j('#btnTaskUpdateSubmit').unbind('click');
$j('#btnTaskUpdateSubmit').click(function(e){
var newStatus = $("#select-task-status").val();
if (newStatus != currStatus) {
changeTaskStatus(recordId, newStatus,creds);
$('#select-task-status').selectmenu('refresh');
$('#TaskStatus').html(newStatus);
}
});
});