1

输入的主要问题是你不能使用:before 或:after。我必须将输入按钮的 CSS 与其他 s 匹配,而仅使用 css 几乎是不可能的。

我在想使用带有 onclick="" 属性的简单函数会更容易,该属性用作提交按钮,但我不确定这是一个好主意还是坏主意。例如,我认为用作输入的 a 可能会被 SEO 或浏览器视为不好的东西,另一方面,我每天都在使用 javascript 提交表单。

不推荐使用提交按钮之类的元素吗?

另外,我如何告诉 JS 围绕 div 提交表单,以便我可以创建一个适用于所有表单的代码段?这行得通吗?

<div onclick="this.submit()"></div>
4

6 回答 6

2

如果您不想使用 jQuery,那么可以使用纯 JS 来解决问题:

HTML:

<div onclick="submitButton(this)"></div>

脚本:

function submitButton (element) {
    while(element.parentElement !== document.body) {
        if (element.parentElement.tagName.toLowerCase() === 'form') {
            element.parentElement.submit();
            return;
        } else {
            element = element.parentElement;
        }
    }
    return;
}
于 2012-11-22T08:27:42.997 回答
1

您可以使用

<div onclick="document.myform.submit()"></div>

如果您的 div 是表单元素的子元素,您可以使用

 <div onclick="this.parentNode.submit()"></div>

但是,您也可以使用像 jQuery 这样的框架来处理提交

$('#divId').onclick(function(){
    $('#formId').submit();
});
于 2012-11-22T07:50:00.193 回答
1
 <div onclick="document.forms[0].submit();"></div> 
于 2012-11-22T07:57:12.697 回答
1

另外,我如何告诉 JS 围绕 div 提交表单,以便我可以创建一个适用于所有表单的代码段?这行得通吗?

this.parentNode.submit();

其他的我不知道。您想根本不使用 JavaScript,只使用 css :before 和 :after 来插入内容,但按钮和输入或按钮类型提交没有那些 css 属性?

于 2012-11-22T08:03:02.720 回答
1

还有<button type='submit'>Submit</button>,我不确定这是否适用于 CSS:before:after. 如果你想用 JavaScript 做更强大的事情,你应该研究jQuery ,它似乎非常适合你的情况。

于 2012-11-22T08:12:00.983 回答
1

jQuery submit 方法可能对您有用:

$('element').onclick(function(){
$('form:first').submit();
});

http://api.jquery.com/submit/

于 2012-11-22T08:25:20.767 回答