软件设计师
审校:
蓝色漂流瓶
描述
我有一个通过ajax把数据发送到后台并将返回的数据显示到页面的一个div中的表单。
这倒没什么。但是碰着了一个新需求,须要为该表单添加一个导出功能。该功能可以把表单的数据导入到一个csv文件以便在Excel中的打开。
问题
没啥大不了的?之前我曾写过一篇《将数据输出到excel中》(http://www.codeshare.co.uk/blog/how-to-export-data-to-excel-as-a-csv-file-in-c/)。但是由于这是一个通过ajax来交互的表单,这就意味着csv的内容也会被导入到表单的div中。
办理方案
我须要一个切实可行的办理方案。我就想到了须要根据点击不同按钮来改变表单提交模式。以是我就写了如下js或jquery代码:
你可以把这段js代码引入到你页面中,你只须要把对应的类添加到对应提交表单的按钮或超链接上即可。
如下所示:
译者注:
文中提到了closest 方法,平时用的不算太多。
科普一下:
closest会首先检讨当前元素是否匹配,如果匹配则直接返回元素本身。
如果不匹配则向上查找父元素,一层一层往上,直到找到匹配选择器的元素。
如果什么都没找到则返回一个空的jQuery工具。
也便是说 点击按钮往后 网上层查找form。
找到往后根据不同按钮设置对应data-ajax的值。
然后解绑该按钮的点击事宜并触发点击事宜(即调用else)。
其余还有一款jquery插件
http://plugins.jquery.com/form/
可能和本文类似
http://jquery.malsup.com/form/#getting-started
【本文已经得到原作者Paul Seal翻译容许,转载请注明出处】
原地址:http://www.codeshare.co.uk/blog/switch-between-ajax-and-post-back-in-the-same-form/