什么是避免在Spring中重复表单提交的最佳方法.此框架是否提供了处理此问题的任何特殊功能(例如,作为Struts中的Synchronizer Token)?
这是一般的表单代码
<form name="search_form" action="" method="POST">
<input type="text" name="search_text">
<input type="submit" name="search_bt" value="Go">
</form>
Run Code Online (Sandbox Code Playgroud)
有没有办法可以有一个确认对话框,说'是'\'不'或'确认'\'取消'等...
我想到的一种方式是使用CSS Layer和JavaScript和Php ... isset(){}按钮上有一个php chechk,当设置显示带有两个按钮的Div时onclick=func(),这些按钮的JS功能有一个php变量(标志)设置然后我可以if(flag){}继续或跳过一些代码......
好吧,这将是有效的,加点是我可以有一个很好的主题对话框,但我只是想让我的生活更轻松...
有没有一种简单的方法可以将空表单输入转换为java中的空字符串?我正在使用spring mvc和SimpleJdbcInsert将对象插入MySQL数据库.我想在数据库中将空白输入设置为NULL而不是''.我有很多字段,我希望有一种方法可以做到这一点,而无需手动检查每个值.
谢谢!
编辑 - 所以我是个白痴.我的几个错误使我相信下面的正确答案是不正确的.我写了一个propertyEditorSupport,如下所示:
class StringEditor extends PropertyEditorSupport {
public void setAsText(String text) {
String value = text.trim();
if ("" == value) {
setValue(null);
} else {
setValue(value);
}
}
}
Run Code Online (Sandbox Code Playgroud)
两个问题 - 首先,没有getAsText,所以我的表单填充了"null"字符串!2,我的等式检查是C++,而不是java.当我尝试推荐的setter时,我只是重新加载了已经包含"null"字符串的帖子.一旦我清理了所有这些,一切都开始工作了.感谢您的帮助,对不起我的"操作员错误"!
布雷特
我正在使用一个表单,我无法更改标记并且无法使用jQuery.目前,表单将结果发布到新窗口.是否可以将其更改为ajax表单,以便在不改变任何标记的情况下显示提交结果?将结果(标记)从结果页面拉回到表单页面.
这是表格的加价.
<form class="form-poll" id="poll-1225962377536" action="/cs/Satellite" target="_blank">
<div class="form-item">
<fieldset class="form-radio-group">
<legend><span class="legend-text">What mobile phone is the best?</span></legend>
<div class="form-radio-item">
<input type="radio" class="radio" value="1225962377541" name="option" id="form-item-1225962377541">
<label class="radio" for="form-item-1225962377541">
<span class="label-text">iPhone</span>
</label>
</div><!-- // .form-radio-item -->
<div class="form-radio-item">
<input type="radio" class="radio" value="1225962377542" name="option" id="form-item-1225962377542">
<label class="radio" for="form-item-1225962377542">
<span class="label-text">Android</span>
</label>
</div><!-- // .form-radio-item -->
<div class="form-radio-item">
<input type="radio" class="radio" value="1225962377543" name="option" id="form-item-1225962377543">
<label class="radio" for="form-item-1225962377543">
<span class="label-text">Symbian</span>
</label>
</div><!-- // .form-radio-item -->
<div class="form-radio-item">
<input type="radio" class="radio" value="1225962377544" name="option" id="form-item-1225962377544"> …Run Code Online (Sandbox Code Playgroud) 我需要将选项select中的值传递给我有agent_id =的操作
有人可以帮忙吗?
<form method="POST" action="index.php?action=contact_agent&agent_id=">
<select>
<option value="1">Agent Homer</option>
<option value="2">Agent Lenny</option>
<option value="3">Agent Carl</option>
</select>
Run Code Online (Sandbox Code Playgroud) 我知道我可以使用@Html.HiddenFor(m => m.parameter),当提交表单时,该参数将传递给控制器.我的模型有很多属性.
有没有一种将整个模型一次性传递给控制器的更短方法,还是每次都必须逐一进行?
问题:如果一个表单输入有名称,submit如何使用Javascript发送表单?
背景:我正在将用户重定向到另一个带有隐藏HTML表单的页面.我无法更改(隐藏)输入上的名称,因为另一个页面位于另一台服务器上,输入需要完全按原样.我的HTML表单如下所示:
<form id="redirectForm" method="post" action="http://www.example.com/">
<input name="search" type="hidden" value="search for this" />
<input name="submit" type="hidden" value="search now" />
</form>
Run Code Online (Sandbox Code Playgroud)
我今天使用以下javascript行自动发送表单:
document.getElementById('redirectForm').submit();
Run Code Online (Sandbox Code Playgroud)
但是,由于一个输入的名称是"submit"(它不能是其他内容,或者其他服务器不会处理请求),document.getElementById('redirectForm').submit因此它会引用输入,因为它会覆盖表单函数submit().
Firefox中的错误消息是:Error: document.getElementById("requestform").submit is not a function.Safari中的类似错误消息.
我有一个HTML文件控件使用这个我试图在服务器上传文件.
此问题仅适用于iPhone或IOS.
<input id="image" name="image" type="file" accept="image/*" capture style="width: 58px" />
Run Code Online (Sandbox Code Playgroud)
请告诉我,如果从相机捕获图像,如何停止自动旋转图像.
谢谢,Imdadhusen
当我点击提交时,file参数为null.
public ActionResult Create()
{
return View(new FileViewModel());
}
[HttpPost]
[InitializeBlobHelper]
public ActionResult Create(FileViewModel file)
{
if (ModelState.IsValid)
{
//upload file
}
else
return View(file);
}
public class FileViewModel
{
internal const string UploadingUserNameKey = "UserName";
internal const string FileNameKey = "FileName";
internal const string Folder = "files";
private readonly Guid guid = Guid.NewGuid();
public string FileName
{
get
{
if (File == null)
return null;
var folder = Folder;
return string.Format("{0}/{1}{2}", folder, guid, Path.GetExtension(File.FileName)).ToLowerInvariant();
}
}
[RequiredValue] …Run Code Online (Sandbox Code Playgroud) 我有一个输入表单,带有一个提交按钮。我不希望用户能够双击提交按钮并再次提交表单...
因此,我将以下jQuery添加到了Form中:
var prevSubmitTime = new Date('2000-01-01');
function preventFromBeingDoubleSubmitted() {
$('form').each(function () {
$(this).submit(function (e) {
if ($("form").valid()) {
var curSubmitTime = new Date($.now());
// prevent the second submit if it is within 2 seconds of the first submit
if (curSubmitTime - prevSubmitTime < 2000) {
e.preventDefault();
}
prevSubmitTime = new Date($.now());
}
});
});
}
$(document).ready(function () {
preventFromBeingDoubleSubmitted();
});
Run Code Online (Sandbox Code Playgroud)
上面的代码存储了提交时间并阻止了第二次提交,如果为时过早(少于2秒),我不想永久禁用提交按钮,以防服务器端发生错误...
这段代码可以实现我想要的功能,但是在调试代码时,e.preventDefault();即使双击提交按钮,也永远无法达到断点。
看起来第二个提交事件正在等待第一个提交事件完成,然后再触发。
但是,如果删除preventFromBeingDoubleSubmitted()功能,则可以通过双击提交按钮来两次提交表单。
谁能解释为什么有时候提交事件被一个接一个地触发……有时候却不是这样吗?将事件处理程序放进去.each(),会影响它们的执行行为吗?
form-submit ×10
forms ×4
javascript ×4
html ×3
asp.net-mvc ×2
spring ×2
spring-mvc ×2
submit ×2
action ×1
ajax ×1
file-upload ×1
image ×1
ios ×1
java ×1
jquery ×1
model ×1
php ×1
razor ×1