单击JQuery调用ColdFusion方法
我有一个页面,显示用户上传的文件列表。 就像这样:
我有一个CFC,其方法需要知道要删除哪个文件。 因为这不是Form,我不知道如何将数据传递给CFC以使其删除文件。
CFC示例:
//which filename to delete //delete the file // Update SQL table to remove filename reference DELETE FROM UploadsTable WHERE Filename = '#Arguments.Filename#' // all done so set variable to true // returns success as JSON to notify Jquery of deletion
如何使用JQuery Ajax将Filename的值传递给CFC,以便它知道要删除哪一个,然后在收到成功结果后通知用户有警报?
我知道如何使用FORM进行上述操作,但因为这不是一种forms我有点困惑。 这就是我的JQuery来了:
$("#FileUploader").on('click', '.DeleteFileUpload', function () { $(this).parent('li').remove(); });
这只会从DOM中删除
您需要向CFC添加ajax调用:
$("#FileUploader").on('click', '.DeleteFileUpload', function (event) { event.preventDefault(); $(this).parent('li').remove(); $.ajax('/path/to/your.cfc?method=DeleteUpload&Filename=' + $(this).attr('href')); });
您需要将删除链接的href更改为文件路径(作为参考)并使用preventDefault()禁用单击
Delete
如果您不想将文件路径放在href中,则可以始终将其放在数据属性中,或者从兄弟链接中获取href。
(参与stackoverflow的新function,尚无法评论。)
不要只是删除元素并祈祷。 立即删除它,让它失败,然后显示“嘿,哎呀!” 消息令人尴尬和困惑。
相反,通过显示项目正在前往垃圾箱的路上来满足即时反馈目标,然后在它消失时将其杀死:
$("#FileUploader").on('click', '.DeleteFileUpload', function (event) { event.preventDefault(); // Do something showing that we're trying a delete... $(this).text('Deleting...') var uri = '/path/to/your.cfc?method=DeleteUpload&Filename=' + encodeURI( $(this).attr('href')) ) $.ajax(uri) .done( function() { $(this).parent('li').remove(); }) .fail( function() { // Let them know we have a goof and let them try again alert('Whoa! That couldn't be deleted!') $(this).text('Deleted...') }) });
然后,您需要考虑通过取消/重新绑定处理程序来防止用户单击两次。
- 使用jQuery和Coldfusion服务器代码启用/禁用提交按钮
- 如何将STRUCT – OR – JSON传递给Coldfusion CFC方法
- JavaScript / jQuery VINvalidation器
- 在jquery发布后,我无法使用coldfusion读取表单值
- 使用Coldfusion cfc如何在编辑表单中格式化jqgrid相关选择的返回数据?
- 使用jquery偶尔的ajax响应错误{readyState = 0,status = 0,statusText =“error”}
- 您将如何根据表单选择元素的值执行数据库查询?
- coldfusion为某些类添加id
- 我可以设置全局变量并在其他文档就绪事件中使用它们吗?