带有HTML5按钮元素的确认对话框(Confirmation dialog with HTML5 button element)
我有一个像这样的按钮元素:
它是表格中的数据输入网格的一部分。 在每一行上都有其他按钮,如Update,还有一个带有Insert按钮的新行。 问题是,单击确定时 ,表单未提交。 谷歌搜索这个没有找到我能找到的东西。
行为与使用input onclick不同。 这就是为什么在我看来这不是重复的原因。
I have a button element like so:
It's part of a data entry grid in a table which is inside a form. On each row are other buttons like Update, and there's a new row with an Insert button. The problem is that when clicking OK the form is not submitted. A google search on this turned up nothing that I could find.
The behavior is different than for onclick with an input. That is why in my opinion this is not a duplicate.
原文:https://stackoverflow.com/questions/43174421
更新时间:2019-10-19 04:50
最满意答案
只需从button删除form属性button 。
Just remove the form attribute from your button.
相关问答
不 ,根据W3C的HTML5规范文档 ,它是无效的HTML5 内容模式: 透明 ,但必须没有交互式内容后代。 只要内部没有交互式内容(例如按钮或其他链接),一个元素可能会被包裹在整个段落,列表,表格等等甚至整个部分中。 换句话说,您可以将任何元素嵌套在除了以下内容: (如果控件属性存在) (如果usemap属性存在) (如果type属性不在隐藏状态)
...
问题是,您尝试第二次重新初始化对话框。 这不可能。 将对话框分配给一个变量并使用该引用打开对话框。 另外一定要设置autoOpen: false 。 尝试以下操作: var $dialog = null;
function dialog()
{
// create dialog if not done already
if (!$dialog) {
$dialog = $("#dialogToShow").dialog({
title: "C
...
在.live()处理程序中,您可以存储对使用.data()单击的元素的引用,如下所示: $('a').live('click',function(){
$('#dialog').data('opener', this).dialog('open');
});
然后为了得到它,你可以在open回调的情况下从$('#dialog').data('opener')或$.data(this, 'opener')它(因为this指的是对话框元件)。 例如,你的open函数可能看起来像这样: open:
...
只需从button删除form属性button 。
...
你想要两个元素my-dialog-button和my-dialog 。 你的按钮元素需要一些重新工作。 我们需要在Polymer({ })块中移动clickHandler函数。 还建议使用on-tap事件而不是on-click 。 on-tap在桌面和移动设备上获得更一致的体验。
Polymer({
is: 'my-dialog-button',
properties: {
dialogId: {
type: String
}
},
...
HTML5标签的文档草稿可在此处获得: http : //www.w3.org/html/wg/drafts/html/master/interactive-elements.html#the-dialog-element 基本上,您可以使用show()和close()方法与对话框进行交互。 查看本教程的示例: http : //blog.teamtreehouse.com/a-preview-of-the-new-dialog-element 确保您在Chrome中启用了此功能
...
如果您只是想要用户确认,请在表单标记中使用onsubmit属性。 https://jsfiddle.net/yetn60ja/
method="POST" action="/y/b/"
enctype="multipart/form-data"
οnsubmit="return confirm('Do you really want to submit the form?');"
>
The modal CSS class has display: none;, so it's hidde
...
如果您不需要其他地方的段落,您可以将标记更改为
或者如果你需要它,你可以在对话框的开放事件中移动标题 $("div#form-info").dialog({
autoOpen: true,
open: function() {
var $formTitle = $("p.title", this
...