我有一个用户填写的表单,然后可以提交表单或预览数据。如果用户选择预览数据,我会将其组合成一个看起来更漂亮的页面(而不是仅仅再次显示该表单)。从这里他们可以按提交或返回表格。感谢@JFK和@jerdiggity在这个论坛上,我有一个很棒的预览。现在当我从预览iframe按提交时,我试图用一个名为sendMessageclass.php的文件调用一个函数。在我的预览窗格中,我最后有两个按钮:
<a class="submit btn login-submit" name="saveData" href="javascript:;">Submit</a>
<a class="closeFB btn login-submit" href="javascript:;">Back to Edit</a>
在preview.php文件的开头,我有以下内容:
$(document).ready(function(){
$('#saveData').live('click', function() {
$.post('classes/sendMessage.class.php?\__construct');
return false;
});
__construct函数以:
开头 if(!empty($_POST)) {
foreach ($_POST as $field => $value)
.........
它继续验证字段,然后将它们提交给数据库。我知道这部分有效,因为当我提交表单(没有预览)时,数据被插入到db中。 当我按下提交时,我在Firebug中的错误是:
TypeError: e[h] is not a function
我也尝试在sendMessageclass.php中添加以下行,以确保按下提交按钮,而不是预览按钮:
if (isset($_POST['submit'])) {
当我按下preview.php文件中的提交按钮时,如何让sendMessageclass.php被调用?
答案 0 :(得分:0)
我猜您可以尝试以下任一选项:
1)。替换html的name
属性
<a class="submit btn login-submit" name="saveData" href="javascript:;">
通过id
属性
<a class="submit btn login-submit" id="saveData" href="javascript:;">
...您无法使用选择器name
#saveData
属性的元素
选中 JSFIDDLE ,您会看到点击name="nameData"
链接时没有返回任何内容。
2)。替换当前的脚本选择器并格式化
$('#saveData').live("click", function(){ ... })
...到
$("body").on("click", "a[name=saveData]", function(){ ... })
...不更改html并保留name
属性。
注意,.live()
已被弃用,因此我们在其委派的表单中使用.on()
(但需要jQuery 1.7+)
另请注意,您可以通过body
a[name=saveData]
元素