我的表格如下
<div id="contact-form" class="hidden" title="Online Request Form">
@Using (Ajax.BeginForm("Contact", "Main",
Nothing,
New AjaxOptions With {.UpdateTargetId = "status", .HttpMethod = "post"},
New With {.id = "contactUs"}))
@<div>
@Html.LabelFor(Function(m) m.Name)<br />
@Html.TextBoxFor(Function(m) m.Name)<br />
@Html.LabelFor(Function(m) m.Phone)<br />
@Html.TextBoxFor(Function(m) m.Phone)<br />
@Html.LabelFor(Function(m) m.Email)<br />
@Html.TextBoxFor(Function(m) m.Email)<br />
@Html.LabelFor(Function(m) m.Question)<br />
@Html.TextAreaFor(Function(m) m.Question)<br />
@Html.LabelFor(function(m) m.Security)<br />
@Html.TextBoxFor(Function(m) m.Security)<br />
<noscript>
<input type="submit" name="submit" value="Ok" />
</noscript>
@Html.ValidationSummary("Oops, please correct the errors.")<span id="status">@TempData("status")</span>
</div>
End Using
</div>
Run Code Online (Sandbox Code Playgroud)
我在jQuery-UI模式窗口中打开它
<script>
$(function () {
// Open …
Run Code Online (Sandbox Code Playgroud) 我有一个带有按钮的HTML表单:
<form action="/" method="post" id="MyForm">
<input type="hidden" name="Field1" value="Value1" />
<input type="hidden" name="Field2" value="Value2" />
<input type="submit" name="name" value="submit" />
</form>
Run Code Online (Sandbox Code Playgroud)
我有附加到Window的提交事件处理程序:
window.onsubmit = function()
{
alert("Submit happening!");
};
Run Code Online (Sandbox Code Playgroud)
如果单击"提交"按钮,此事件处理程序将正常触发.但是,当从javascript以编程方式触发提交时,事件永远不会起作用:
$("#MyForm")[0].submit();
Run Code Online (Sandbox Code Playgroud)
如何在Javascript启动时捕获提交事件处理程序,而不是用户单击?我试图使用Jquery或AddEventListener订阅Form事件 - 不起作用.
我有一个button
和一个dropdownlst
我有这个脚本:
$("form").submit(function (e)
{
$('#divOverlay').show();
});
Run Code Online (Sandbox Code Playgroud)
我的目标 :
当表单提交时,我需要显示"加载div
":
题 :
当我按下按钮时它会显示div(灰色div闪烁一秒钟):
但是当我在下拉列表中更改索引时:
<asp:DropDownList runat="server" OnSelectedIndexChanged="OnSelectedIndexChanged" AutoPostBack="True">
<asp:ListItem Value="a"> a</asp:ListItem>
<asp:ListItem Value="b">b</asp:ListItem>
</asp:DropDownList>
Run Code Online (Sandbox Code Playgroud)
它提交bUt我没看到div:
为什么不$("form").submit(function (e)
捕获选定索引更改后发生的回发??
NB:
Fiddler将两个事件(按下按钮&&更改索引)显示为POST
命令
该文件的结构是什么?(伪):
<html >
<head>
...
</head>
<body>
<div id='divOverlay'>
...
</div>
<form id="form1" runat="server" >
<asp:Button runat="server" Text="sssssss"/>
<asp:DropDownList runat="server" OnSelectedIndexChanged="OnSelectedIndexChanged" AutoPostBack="True">
...
</asp:DropDownList>
</form>
<script type="text/javascript">
$(function()
{
$("form").submit(function (e)
{
$('#divOverlay').show();
});
});
</script>
</body>
</html> …
Run Code Online (Sandbox Code Playgroud) 我有一个列出项目的页面.在每个项目下面,它列出了该项目的任何注释(注释是项目下的嵌套资源).
您可以在项目页面上添加新注释.当你这样做时,它正在重新加载整个页面,所以我想改变它以使用Ajax并只使用jQuery插入注释.
所以我将注释/ _form.html.erb改为使用:remote => true
<%= form_for([@item,@comment], :remote=>true) do |f| %>
Run Code Online (Sandbox Code Playgroud)
我在comments_controller中添加了一个format.js:
def create
@comment = Comment.new(params[:comment])
@comment.save
respond_to do |format|
format.js
format.html { redirect_to items_path}
end
end
Run Code Online (Sandbox Code Playgroud)
并创建了一个简单的注释/ create.js.erb来将新注释插入页面:
$("#comments").append("<%= j(render(@comment)) %>");
Run Code Online (Sandbox Code Playgroud)
但是,当我提交注释时(即使表单上有:remote => true),它会不断重新加载整个页面/忽略我的.js文件.
所以我从respond_to中删除了format.html(因为我不想使用该选项),但是它给了我4ms内完成406不可接受的错误(ActiveRecord:0.2ms)
如何让它留在当前页面并使用我的create.js回复?
我在使用javascript提交表单时遇到问题 submit()
现场行动:https://jsfiddle.net/98sm3f3t/
HTML:
<form id="myForm" action="">
First name: <input type="text" name="fname"><br>
<button id="myButton" type="button">Submit form</button>
</form>
Run Code Online (Sandbox Code Playgroud)
JS :
document.getElementById("myButton").addEventListener("click", function() {
document.getElementById("myForm").submit();
});
document.getElementById("myForm").addEventListener("submit", function(e) {
e.preventDefault();
alert("cancel submitting");
});
Run Code Online (Sandbox Code Playgroud)
它倾向于显示alert()
和取消提交.
我的代码出了什么问题?
提前致谢...
我对jQuery有一点问题:我已经.submit()
在表单上定义了,当我通过单击提交按钮提交表单时,偶数触发器和事情工作顺利,但是,当我使用时document.forms[0].submit()
,事件没有得到触发,但表格提交!! 有什么理由吗?我怎么能克服这个?
我使用JavaScript .submit()函数提交表单.
form.submit();
Run Code Online (Sandbox Code Playgroud)
但是当我使用addEventListener捕获我的提交事件时,它将无法正常工作.
form.addEventListener("submit", function(event){
//codes
});
Run Code Online (Sandbox Code Playgroud)
我发现addEvenetListener函数只会侦听onsubmit事件而不是提交.在执行form.submit()时,是否有任何替代解决方案来调用我的函数?
ps:由于某些原因,我需要继续使用form.submit()来提交我的表单,而不是使用提交按钮.
javascript ×5
jquery ×4
html ×3
forms ×2
asp.net ×1
asp.net-mvc ×1
form-submit ×1
onsubmit ×1
razor ×1