Javascript 表单提交时未调用函数

Javascript 表单提交时未调用函数,javascript,jquery,forms,Javascript,Jquery,Forms,我已经把你所有的评论都记在黑板上了,并把代码改成下面的。但是,现在地址栏中的所有内容都以字符串结束,页面将刷新。我的代码是: 表格的一部分: <form class="inline" name="Form1"> <input class="inline" name="employeeid" id="employeeid" type="hidden" size="30" autofocus value="<?php echo $employee[$k]["employeei

我已经把你所有的评论都记在黑板上了,并把代码改成下面的。但是,现在地址栏中的所有内容都以字符串结束,页面将刷新。我的代码是:

表格的一部分:

<form class="inline" name="Form1">
<input class="inline" name="employeeid" id="employeeid" type="hidden" size="30" autofocus value="<?php echo $employee[$k]["employeeid"]; ?>" />
.... more fields here.....
<p class="inline">
        <label class="inline" for="pensionindividual">Individual Pension:</label>
        <input class="inline" id="pensionindividual" type="text" name="pensionindividual" size="30" value="<?php echo $employee[$k]["pensionindividual"]; ?>" />
    </p>
    <p class="inline">
        <label class="inline" for="pensioncompany">Company Pension:</label>
        <input class="inline" type="text" id="pensioncompany" name="pensioncompany" size="30" value="<?php echo $employee[$k]["pensioncompany"]; ?>" />
    </p>
    <input id="submit" type="submit" onclick="NewSearchFunction(e)" value="Update Details">
       </td></tr></table></td></tr></table>
</form>
<script src="editemployeedetailsajax.js"></script>
<div id="mainform">
<div class="innerdiv">
<form class="inline" name="Form1">
    <p class="inline">
        <label class="inline" for="pensioncompany">Company Pension:</label>
        <input class="inline" type="text" name="pensioncompany" size="30" value="<?php echo $employee[$k]["pensioncompany"]; ?>" />
    </p>
    <input id="submit" type="button" onclick="myFunction()" value="Update Details">
       </td></tr></table></td></tr></table>
</form>
您好,当我提交表单时,请使用“提交”附加的功能 按钮不会被调用。表单位于一个div中,该div是 由ajax根据用户在另一个分区中的选择检索 javascript在第一页的页眉中被引用-我不是 当然,如果这是问题所在

表格的一部分:

<form class="inline" name="Form1">
<input class="inline" name="employeeid" id="employeeid" type="hidden" size="30" autofocus value="<?php echo $employee[$k]["employeeid"]; ?>" />
.... more fields here.....
<p class="inline">
        <label class="inline" for="pensionindividual">Individual Pension:</label>
        <input class="inline" id="pensionindividual" type="text" name="pensionindividual" size="30" value="<?php echo $employee[$k]["pensionindividual"]; ?>" />
    </p>
    <p class="inline">
        <label class="inline" for="pensioncompany">Company Pension:</label>
        <input class="inline" type="text" id="pensioncompany" name="pensioncompany" size="30" value="<?php echo $employee[$k]["pensioncompany"]; ?>" />
    </p>
    <input id="submit" type="submit" onclick="NewSearchFunction(e)" value="Update Details">
       </td></tr></table></td></tr></table>
</form>
<script src="editemployeedetailsajax.js"></script>
<div id="mainform">
<div class="innerdiv">
<form class="inline" name="Form1">
    <p class="inline">
        <label class="inline" for="pensioncompany">Company Pension:</label>
        <input class="inline" type="text" name="pensioncompany" size="30" value="<?php echo $employee[$k]["pensioncompany"]; ?>" />
    </p>
    <input id="submit" type="button" onclick="myFunction()" value="Update Details">
       </td></tr></table></td></tr></table>
</form>
addr2+'&town='+town+'&country='+country+'&postcode='+ 邮政编码+'&tel1='+tel1+'&work='+work+'&mobile='+mobile+ “&sex=”+sex+”&DOB=“+DOB+”&ninumber=”+ninumber+ “&payrollnumber=”+payrollnumber+”&sortcode=”+sortcode+ “&accountnumber=”+accountnumber+”&ANUALLEAVERIGHTINGE=”+ 年度通行权+'&车辆ID='+车辆ID+'&燃料卡ID='+ fuelcardid+'&mobileid='+mobileid+'&pensionindividual='+ 养老金个人+养老金公司=+养老金公司

// AJAX code to submit form.
&.ajax({
type: "POST",
url: "submit.php",
data: dataString,
cache: false,
success: function(html) {
alert(html);
}
});
}
return false;
}

问题是表单提交发生在onclick事件得到处理之前。将HTML块更改为
onclick=“myFunction(e);”

然后,将函数更改为从以下内容开始:

function myFunction(e) {
    e.preventDefault();

    // ... The rest of your code.
}
这将停止表单的提交,并允许您的代码执行。您也不需要在最后返回false来阻止它提交


e
是onclick事件对象。

最后返回false。我认为问题只存在于此。删除那一行,看看会发生什么……嗨。我已经删除了那一行,但仍然没有运气。当然
&.ajax()
应该是
$.ajax()
,对吗?读了更多的文章后,我想知道是不是因为处理程序在表单被附加到DOM之前就被附加了,因为它位于一个div中,该div只在用户输入时被填充,但我不知道如何解决这个问题。另外,您还可以使用一条语句
dataString=$(“form[name=Form1]”)生成
dataString
。serialize();
提交按钮
元素具有
type=“button”
,而不是
type=“submit”
,因此它不会提交表单。很容易出错,因为它有
id=“submit”
。是的,OP说“当我提交表单时”,我也错过了这一点,这是我在离开几个月后回到客户端编码时一直忘记的事情之一。我把你所有的评论都记在黑板上,并将代码更改为下面。但是,现在地址栏中的所有内容都以字符串结束,控制台中的页面刷新我得到“引用错误:NewSearchFunction未定义”。示例代码中没有名为
NewSearchFunction
的JS变量或函数。此外,您可以将数据作为JavaScript对象传入,而不是将其转换为字符串。