【问题标题】:Why wont <button type="submit"> work?为什么 <button type="submit"> 不起作用?
【发布时间】:2015-02-26 18:31:21
【问题描述】:

我有一个标准的 HTML 表单,但按钮不起作用。我知道它指向正确的页面,据我所知,一切看起来都很完美。 它让我点击按钮,但没有任何反应,它不会将我定向到 send.php 页面或任何东西。

    <form method="post" action="http://www.URL.net/send.php">
    <p>
        <label for="name">Name <span class="required">*</span></label>
        <input type="text" name="name" id="name">
    </p>
    <p>
        <label for="email">Email <span class="required">*</span></label>
        <input type="text" name="email" id="email">
    </p>
    <p>
        <label for="subject">Subject</label>
        <input type="text" name="subject" id="subject">
    </p>
    <p>
        <label for="subject">Message <span class="required">*</span></label>
        <textarea name="message" id="message" cols="45" rows="10"></textarea>
    </p>
    <div class="fBtn">
        <button type="submit" name="submit" id="submit" class="regButton"><i class="icon-paper-plane"></i>Send Message</button>
    </div>
    </form>

另外,我也尝试过使用&lt;input type="submit" name="submit" id="submit" class="regButton" value="Send Message" /&gt;,但由于某些奇怪的原因它也无法正常工作。

在 Chrome 和 IE11 中测试。

编辑这是表单验证的 JS:

$('#submit').click(function(){ 

$('input#name').removeClass("errorForm");
$('textarea#message').removeClass("errorForm");
$('input#email').removeClass("errorForm");

var error = false; 
var name = $('input#name').val(); 
if(name == "" || name == " ") { 
    error = true; 
    $('input#name').addClass("errorForm");
}


    var msg = $('textarea#message').val(); 
    if(msg == "" || msg == " ") {
        error = true;
        $('textarea#message').addClass("errorForm");

    }

var email_compare = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/i; 
var email = $('input#email').val(); 
if (email == "" || email == " ") { 
    $('input#email').addClass("errorForm");
    error = true;
}else if (!email_compare.test(email)) { 
    $('input#email').addClass("errorForm");
    error = true;
}

if(error == true) {
    return false;
}

var data_string = $('.contactForm form').serialize(); 


$.ajax({
    type: "POST",
    url: $('.contactForm form').attr('action'),
    data: data_string,

    success: function(message) {
            if(message == 'SENDING'){
                $('#success').fadeIn('slow');
            }
            else{
                $('#error').fadeIn('slow');
            }
                }



});

return false; 
});

【问题讨论】:

  • 你的问题isn't reproducible
  • 页面上有 JavaScript 吗?
  • @George,我更新了代码,它确实在小提琴上工作,只是在我的网站上不起作用。
  • @minitech,是的,页面上有JS。
  • 尝试打开chrome控制台看看有时会不会报错。

标签: html forms submit-button


【解决方案1】:

您似乎有一些 JavaScript 可以使用 AJAX 自动提交每个表单。由于您在域 trishajohnson.net 上,same-origin policy 会阻止 JavaScript 打开对(稍微)不同域的请求 - www.trishajohnson.net

不过,有一个简单的解决方法 - 只需使用路径部分。反正更干净。

<form method="POST" action="/tj/send.php">

【讨论】:

  • @Trisha:把 jquery-migrate 扔掉。使用 jQuery 1.11.2 或 2.1.3。
  • 修复了控制台日志错误,但按钮仍然无法正常工作。我正在使用 1.9.1 - 我会更新并查看是否可以解决它。更新了,还是什么都没有。
  • 我还删除了验证码,看看是否有帮助,它成功了!!!那么,我的验证码有什么问题呢?嗯...
猜你喜欢
  • 2016-12-09
  • 2013-09-07
  • 2017-07-02
  • 2013-01-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-14
  • 1970-01-01
相关资源
最近更新 更多