Javascript 提交按钮不工作。为什么?
当功能在同一页面上定义时,“提交”按钮起作用。但当提交按钮的动作在单独的JS文件中定义时,它就不起作用了Javascript 提交按钮不工作。为什么?,javascript,jquery,html,Javascript,Jquery,Html,当功能在同一页面上定义时,“提交”按钮起作用。但当提交按钮的动作在单独的JS文件中定义时,它就不起作用了 <form method="post"> <div id="sjfb"> <div id="form-fields"> @using (Html.BeginForm("Index", "Home", FormMethod.Post)) { @Html.
<form method="post">
<div id="sjfb">
<div id="form-fields">
@using (Html.BeginForm("Index", "Home", FormMethod.Post))
{
@Html.DisplayFor(model => model.controls);
@Html.DisplayFor(model => model.formEditor);
}
</div>
<button type="submit" id="submit" class="submit">Save Form</button>
</div>
</form>
我甚至尝试了以下方法:
1. document.getElementID('submit').onClick(function(){*some code*}
2. Giving a name to the function and calling it in onClick()
3. $(#sjfb #submit).click(function(){...})
4.$(#sjfb .submit).click(function(){...})
仍然不起作用。我找不到这有什么问题。您缺少submit类事件处理程序上的点
$("#sjfb submit")
你应该:
$("#sjfb .submit")
您缺少提交类事件处理程序上的点
$("#sjfb submit")
你应该:
$("#sjfb .submit")
如果在加载le dom内容之前加载javascript文件,则无法绑定按钮上的事件。尝试在文档末尾加载le js文件,或者您可以在触发事件$(window).on('load',fn)时添加事件如果您在加载le dom内容之前加载javascript文件,则无法在按钮上绑定事件。尝试将le js文件a加载到文档末尾,或者您可以在触发事件$(window).on('load',fn)时添加该事件将代码替换为此
$(document).ready(function() {
$("form").submit(function () {
alert('Submit button is working');
});
});
用这个替换你的代码
$(document).ready(function() {
$("form").submit(function () {
alert('Submit button is working');
});
});
问题就在这段代码中
$("#sjfb submit").click(function () {
alert('Submit button is working');
}
为了明确起见,您应该按如下方式进行更改:
$(document).ready(function(){
$("#sjfb .submit").click(function () {
alert('Submit button is working');
});
});
$(document).ready(function(){
$("#sjfb #submit").click(function () {
alert('Submit button is working');
});
});
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
$("#sjfb .submit").click(function () {
alert('Submit button is working');
});
});
</script>
</head>
<body>
<form method="post">
<div id="sjfb">
<div id="form-fields">
@using (Html.BeginForm("Index", "Home", FormMethod.Post))
{
@Html.DisplayFor(model => model.controls);
@Html.DisplayFor(model => model.formEditor);
}
</div>
<button type="submit" id="submit" class="submit">Save Form</button>
</div>
</form>
</body>
</html>
或如下:
$(document).ready(function(){
$("#sjfb .submit").click(function () {
alert('Submit button is working');
});
});
$(document).ready(function(){
$("#sjfb #submit").click(function () {
alert('Submit button is working');
});
});
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
$("#sjfb .submit").click(function () {
alert('Submit button is working');
});
});
</script>
</head>
<body>
<form method="post">
<div id="sjfb">
<div id="form-fields">
@using (Html.BeginForm("Index", "Home", FormMethod.Post))
{
@Html.DisplayFor(model => model.controls);
@Html.DisplayFor(model => model.formEditor);
}
</div>
<button type="submit" id="submit" class="submit">Save Form</button>
</div>
</form>
</body>
</html>
因为您已经将class和id都指定为“submit”到您的submit按钮。因此,您也应该将其添加到js中
在w3上测试的整个代码如下:
$(document).ready(function(){
$("#sjfb .submit").click(function () {
alert('Submit button is working');
});
});
$(document).ready(function(){
$("#sjfb #submit").click(function () {
alert('Submit button is working');
});
});
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
$("#sjfb .submit").click(function () {
alert('Submit button is working');
});
});
</script>
</head>
<body>
<form method="post">
<div id="sjfb">
<div id="form-fields">
@using (Html.BeginForm("Index", "Home", FormMethod.Post))
{
@Html.DisplayFor(model => model.controls);
@Html.DisplayFor(model => model.formEditor);
}
</div>
<button type="submit" id="submit" class="submit">Save Form</button>
</div>
</form>
</body>
</html>
$(文档).ready(函数(){
$(“#sjfb.submit”)。单击(函数(){
警报(“提交按钮正在工作”);
});
});
@使用(Html.BeginForm(“Index”,“Home”,FormMethod.Post))
{
@DisplayFor(model=>model.controls);
@DisplayFor(model=>model.formEditor);
}
保存形式
问题出在这段代码中
$("#sjfb submit").click(function () {
alert('Submit button is working');
}
为了明确起见,您应该按如下方式进行更改:
$(document).ready(function(){
$("#sjfb .submit").click(function () {
alert('Submit button is working');
});
});
$(document).ready(function(){
$("#sjfb #submit").click(function () {
alert('Submit button is working');
});
});
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
$("#sjfb .submit").click(function () {
alert('Submit button is working');
});
});
</script>
</head>
<body>
<form method="post">
<div id="sjfb">
<div id="form-fields">
@using (Html.BeginForm("Index", "Home", FormMethod.Post))
{
@Html.DisplayFor(model => model.controls);
@Html.DisplayFor(model => model.formEditor);
}
</div>
<button type="submit" id="submit" class="submit">Save Form</button>
</div>
</form>
</body>
</html>
或如下:
$(document).ready(function(){
$("#sjfb .submit").click(function () {
alert('Submit button is working');
});
});
$(document).ready(function(){
$("#sjfb #submit").click(function () {
alert('Submit button is working');
});
});
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
$("#sjfb .submit").click(function () {
alert('Submit button is working');
});
});
</script>
</head>
<body>
<form method="post">
<div id="sjfb">
<div id="form-fields">
@using (Html.BeginForm("Index", "Home", FormMethod.Post))
{
@Html.DisplayFor(model => model.controls);
@Html.DisplayFor(model => model.formEditor);
}
</div>
<button type="submit" id="submit" class="submit">Save Form</button>
</div>
</form>
</body>
</html>
因为您已经将class和id都指定为“submit”到您的submit按钮。因此,您也应该将其添加到js中
在w3上测试的整个代码如下:
$(document).ready(function(){
$("#sjfb .submit").click(function () {
alert('Submit button is working');
});
});
$(document).ready(function(){
$("#sjfb #submit").click(function () {
alert('Submit button is working');
});
});
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
$("#sjfb .submit").click(function () {
alert('Submit button is working');
});
});
</script>
</head>
<body>
<form method="post">
<div id="sjfb">
<div id="form-fields">
@using (Html.BeginForm("Index", "Home", FormMethod.Post))
{
@Html.DisplayFor(model => model.controls);
@Html.DisplayFor(model => model.formEditor);
}
</div>
<button type="submit" id="submit" class="submit">Save Form</button>
</div>
</form>
</body>
</html>
$(文档).ready(函数(){
$(“#sjfb.submit”)。单击(函数(){
警报(“提交按钮正在工作”);
});
});
@使用(Html.BeginForm(“Index”,“Home”,FormMethod.Post))
{
@DisplayFor(model=>model.controls);
@DisplayFor(model=>model.formEditor);
}
保存形式
尝试在div中查找元素
$("#sjfb").find('button[type="submit"]').click(function (e){
console.log(this);
});
此代码将找到id=“sjfb”
div
中的按钮,并将调用
单击函数。尝试在div中查找元素
$("#sjfb").find('button[type="submit"]').click(function (e){
console.log(this);
});
此代码将找到id=“sjfb”
div
中的按钮,并将调用
单击
函数。您是否已将jQuery代码放入文档中。准备好事件处理程序了吗?另请注意,在您的另一种尝试中,语法应该是onclick=function()…
,尽管addEventListener()
会更好。当脚本位于不同的文件中时,如何将其包括在内?(是的,一个脚本标记,但在页面中的何处)?我正在cshtml文件@archer中的'section script'中添加我的JS文件。我已经在$(document.ready)中添加了所有函数(function(){..});包括$(“#sjfb submit”)。单击(函数(){alert('submit button's working');})@RoryMcCrossan$(“#sjfb submit”)
将找不到提交按钮。将其更改为$(“#提交”)
是否已将jQuery代码放入文档中。准备好事件处理程序了吗?另请注意,在您的另一种尝试中,语法应该是onclick=function()…
,尽管addEventListener()
会更好。当脚本位于不同的文件中时,如何将其包括在内?(是的,一个脚本标记,但在页面中的何处)?我正在cshtml文件@archer中的'section script'中添加我的JS文件。我已经在$(document.ready)中添加了所有函数(function(){..});包括$(“#sjfb submit”)。单击(函数(){alert('submit button's working');})@RoryMcCrossan$(“#sjfb submit”)
将找不到提交按钮。将其更改为$(“#提交”)
我之前已经按照您建议的那样给出了它。但即使我在单独的js中定义了函数,我也希望它能工作。@Iswarya是的,它也能以这种方式工作。将js文件包含在html代码的标记之前。但由于我们正在编写document.ready函数,所以的位置无关紧要。按照下面的方法操作
,其中demo\u script\u src是js文件的名称。另外,如果您的js文件与html文件不在同一位置,请在src中给出完整位置src=“c:/newfolder/myjs.js”@Iswarya您是否完全遵循了我在前面的评论中提到的内容?如果不起作用,则共享html文件和js文件的位置。还有js和html文件的内容。我之前已经给出了,就像你建议的那样。但即使我在单独的js中定义了函数,我也希望它能工作。@Iswarya是的,它也能以这种方式工作。将js文件包含在html代码的标记之前。但由于我们正在编写document.ready函数,所以的位置无关紧要。按照下面的方法操作
,其中demo\u script\u src是js文件的名称。另外,如果您的js文件与html文件不在同一位置,请在src中给出完整位置src=“c:/newfolder/myjs.js”@Iswarya您是否完全遵循了我在前面的评论中提到的内容?如果不起作用,则共享html文件和js文件的位置。还有js和html文件的内容。或$(“sjfb#submit”)
或$(“sjfb#submit”)