отключение ввода формы работает по-разному между Chrome и Firefox - PullRequest
2 голосов
/ 03 июня 2011

У меня сейчас есть форма с отключенным вводом. В Firefox 4.0, если вы нажимаете Enter, ничего не происходит (что я и хочу).

В Chrome (11) или IE 7 он попытается отправить страницу.

Есть ли Jquery, который заставит Chrome & IE вести себя как Firefox в этом примере?

Я создал тестовую страницу для людей - http://jsfiddle.net/tEsEU/1/

Вот вывод html

<!DOCTYPE html>
<html lang="en-CA">
<head>
    <title>Test</title>
</head>
<body>
    <div class="page">
        <div id="header">
            <div id="title">
                <h1>My App</h1>
            </div>
            <div id="logindisplay">
            </div>
            <div id="menucontainer">
                <ul id="menu">
                </ul>
            </div>
        </div>
        <div id="main">
            <div>
<form action="/Home/ChangePeoPerm" method="post">    
    <label for="userName" class="visibleFalse">asdfsdf</label>
    <input type="text" name="userName" id="userName" value="d" />
    <input type="submit" name="btnAddUser" id="btnAddUser" value=">>" disabled="disabled" />
</form></div>


            <div id="footer">
            </div>
        </div>
    </div>
</body>
</html> 

Вот мой mvc View

<div>
                @using (Html.BeginForm("ChangePeoPerm", "Home"))
                {
                    <label for="userName" class="visibleFalse">asdfsdf</label>
                    <input type="text" name="userName" id="userName" value="d" />
                    <input type="submit" name="btnAddUser" id="btnAddUser" value=">>" disabled="disabled" />
                }
</div>

Ответы [ 2 ]

2 голосов
/ 03 июня 2011

Похоже, ошибка в Chrome.Предлагаемое решение состоит в том, чтобы использовать javascript для подписки на событие onsubmit формы и, если кнопка отключена, отменить отправку.Вот как вы можете добиться этого с помощью jQuery:

$(function() {
    $('form').submit(function() {
        return !$(':submit', this).is(':disabled');
    });
});
1 голос
/ 03 июня 2011

Вы можете программно заблокировать событие отправки, используя jQuery:

$("form").submit(function(){
    return $("#btnAddUser").attr("disabled") != "disabled";
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...