好吧,这不仅仅是我的信息问题(因为我可以想到4种不同的工作方式可以使它工作.但我有一个表单(没什么特别的)但提交按钮有一个特定的值与之相关联.
<input type='submit' name='submitDocUpdate' value='Save'/>
Run Code Online (Sandbox Code Playgroud)
当表单提交时,我检查该名称.
if(isset($_POST['submitDocUpdate'])){ //do stuff
Run Code Online (Sandbox Code Playgroud)
但是,有一次我试图通过Javascript提交表单,而不是提交按钮.
document.getElementById("myForm").submit();
Run Code Online (Sandbox Code Playgroud)
哪个工作正常,除了1个问题.当我查看通过javascript方法提交的$ _POST值时,它不包括submitDocUpdate.我得到表单的所有其他值,但不是提交按钮值.
就像我说的,我可以想到几种方法来解决它(使用隐藏变量,检查另一个表单变量上的isset等)但我只是想知道这是否是submit()的正确行为,因为它似乎更少 - 直觉我.提前致谢.
有时用户可能会按Enter两次,并且帖子会被插入两次.
有没有一个解决方案来防止这个,除了检查是否已经有一个相同的帖子title和content?
我正在尝试使用jQuery 处理元素submit事件form.
$("form").bind("submit", function() {
alert("You are submitting!");
});
Run Code Online (Sandbox Code Playgroud)
当表单提交时(作为回发的一部分,例如当我点击按钮或链接按钮时),它永远不会触发.
有没有办法让这项工作?我可以附加触发提交的各个元素的事件,但这不太理想 - 有太多的可能性(例如具有autopostback = true的下拉列表,键盘快捷键等)
更新:这是一个最小的测试用例 - 这是我的aspx页面的全部内容:
<%@ page language="vb" autoeventwireup="false" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:scriptmanager id="ScriptManager" runat="server" enablepartialrendering="true">
<scripts>
<asp:scriptreference path="/Standard/Core/Javascript/Jquery.min.js" />
</scripts>
</asp:scriptmanager>
<p>
<asp:linkbutton id="TestButton" text="Click me!" runat="server" /></p>
</div>
</form>
<script type="text/javascript">
$(document).ready(function() {
alert("Document ready.");
$("form").submit(function() {
alert("Submit detected.");
});
});
</script>
</body> …Run Code Online (Sandbox Code Playgroud) 我有一个页面,上面有一组表格,用于API测试.由于不值得解释的原因,我通常不希望在提交到服务器的过程中包含空字段.如何在提交前从数据中删除空字段?
例如,如果我有一个包含两个字段foo和bar的表单,并且用户将栏留空,我希望服务器看到提交,就好像唯一的字段是foo一样.
我的第一个尝试涉及使用jquery循环遍历字段
$("form").submit(function() {
$(this).children(':input').each(...)
}
Run Code Online (Sandbox Code Playgroud)
并删除该字段.但是a)没有用,并且b)似乎它会从页面上的可见形式中删除该字段,这不是我想要的.
另一种方法可能是遍历字段并手动构造提交字符串,其字段的值不是"".那会有用吗?有更好的想法吗?
请考虑以下HTML:
<form action="">
<input />
<select>
<option>A</option>
<option>B</option>
</select>
<input type="submit" />
</form>
Run Code Online (Sandbox Code Playgroud)
如果焦点在input(文本框)上并且我按Enter键,则表单提交.
但是,如果焦点在select(下拉框)并且我按下回车,则没有任何反应.
我知道我可以找出一些JavaScript来覆盖它,但我想知道为什么命中输入不仅仅起作用?
有没有什么东西我会通过使用JavaScript捕获输入(可能是下拉列表的本机键盘可访问性)?
我的html中有这个表单:
<form action="/awe/ChangeTheme/Change" method="post">
<select id="themes" name="themes">
...
<option value="blitzer">blitzer</option>
</select>
<input type="submit" value="change" />
</form>
Run Code Online (Sandbox Code Playgroud)
有人知道如何在'主题'下拉列表中选择一个值时提交它吗?
我有一个用JavaScript构建的函数,我希望在表单提交被执行后执行.它基本上完全改变了页面的外观.但我需要搜索框中的变量才能继续使用JavaScript.此刻它会闪烁并重置那里的内容,因为它会重新加载页面.
所以我在我的函数中设置了一个返回false,这使得它不会这样做,但我想要的变量不会通过表单提交.关于我应该怎么做才能得到它的任何想法?只要该updateTable()功能有效,页面就可以刷新,并且页面重置不会重置.
<form action="" method="get" onsubmit="return updateTable();">
<input name="search" type="text">
<input type="submit" value="Search" >
</form>
Run Code Online (Sandbox Code Playgroud)
这是updateTable功能:
function updateTable() {
var photoViewer = document.getElementById('photoViewer');
var photo = document.getElementById('photo1').href;
var numOfPics = 5;
var columns = 3;
var rows = Math.ceil(numOfPics/columns);
var content="";
var count=0;
content = "<table class='photoViewer' id='photoViewer'>";
for (r = 0; r < rows; r++) {
content +="<tr>";
for (c = 0; c < columns; c++) {
count++;
if(count == numOfPics) break; // check if …Run Code Online (Sandbox Code Playgroud) 我required在提交表格之前用于第一次检查.
<form action="myform.php">
Foo: <input type="text" name="someField" required="required">
<input type="submit" value="submit">
<input type="submit" value="ignore">
</form>
Run Code Online (Sandbox Code Playgroud)
问题是,我有一个"忽略"按钮,它也提交表单,然后后端逻辑在DB中设置正确的状态.在这种情况下(忽略)不需要验证(因为不需要填写字段"Foo").
处理这两种情况的最佳方法是什么?
onclick作为忽略按钮场景,并在发送表单之前删除该属性(/sf/answers/976605031/).但实际上我正在寻找更聪明的东西....
---编辑---
是的,必填属性HTML5的副本
如何在不加载的情况下提交时,如何使用jquery检查文本字段是否为空login.php?
<form action="login.php" method="post">
<label>Login Name:</label>
<input type="text" name="email" id="log" />
<label>Password:</label>
<input type="password" name="password" id="pwd" />
<input type="submit" name="submit" value="Login" />
</form>
Run Code Online (Sandbox Code Playgroud)
谢谢.
如果我通过POST提交禁用的文本字段,结果值将在操作页面上显示什么?
例如,我有:
<table border=0 cellpadding=4 cellspacing=0>
<tr><td>
<input type="checkbox" id="chk_$item"
onClick="javascript:handleClick('$item')">
</td><td>
<input type="text" id="txt_$item" name="addresses[]" value="$item">
</td></tr>
<tr><td>
...etc...
</td></tr>
</table>
Run Code Online (Sandbox Code Playgroud)
在handleClick()JavaScript函数检查,如果chk_$item被选中,如果没有,它会禁用txt_$item文本字段.
当我提交它时,所有文本字段都转到addresses[]PHP脚本中的数组.
但是,如果它被禁用,我可以阻止该字段提交任何内容吗?它会默认执行此操作吗?如果没有,我应该如何改变行为?(我真的不想在他们被禁用时清除这些字段).
form-submit ×10
html ×5
jquery ×5
javascript ×4
forms ×3
asp.net ×1
php ×1
submit ×1
webforms ×1