Nút gửi mặc định trên biểu mẫu HTML được xác định như thế nào?


210

Nếu một hình thức được gửi nhưng không phải bởi bất kỳ nút cụ thể, chẳng hạn như

  • bằng cách nhấn Enter
  • sử dụng HTMLFormElement.submit()trong JS

Làm thế nào là một trình duyệt được xác định để xác định nút nào trong số nhiều nút gửi, nếu có, để sử dụng như một nút được nhấn?

Điều này có ý nghĩa trên hai cấp độ:

  • gọi một onclicktrình xử lý sự kiện gắn liền với nút gửi
  • dữ liệu được gửi trở lại máy chủ web

Các thí nghiệm của tôi cho đến nay đã chỉ ra rằng:

  • khi nhấn Enter, Firefox, Opera và Safari sử dụng nút gửi đầu tiên trong biểu mẫu
  • khi nhấn Enter, IE sử dụng nút gửi đầu tiên hoặc không có gì cả tùy thuộc vào điều kiện tôi chưa thể tìm ra
  • tất cả các trình duyệt này hoàn toàn không sử dụng cho một lần gửi JS

Tiêu chuẩn nói gì?

Nếu nó có ích, thì đây là mã kiểm tra của tôi (PHP chỉ liên quan đến phương pháp kiểm tra của tôi, không liên quan đến câu hỏi của tôi)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
                      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Test</title>
</head>

<body>

<h1>Get</h1>
<dl>
<?php foreach ($_GET as $k => $v) echo "<dt>$k</dt><dd>$v</dd>"; ?>
</dl>

<h1>Post</h1>
<dl>
<?php foreach ($_POST as $k => $v) echo "<dt>$k</dt><dd>$v</dd>"; ?>
</dl>

<form name="theForm" method="<?php echo isset($_GET['method']) ? $_GET['method'] : 'get'; ?>" action="<?php echo $_SERVER['SCRIPT_NAME']; ?>">
    <input type="text" name="method" />
    <input type="submit" name="action" value="Button 1" onclick="alert('Button 1'); return true" />
    <input type="text" name="stuff" />
    <input type="submit" name="action" value="Button 2" onclick="alert('Button 2'); return true" />
    <input type="button" value="submit" onclick="document.theForm.submit();" />
</form>

</body></html>

Câu trả lời:


115

Nếu bạn gửi biểu mẫu qua Javascript (nghĩa là formElement.submit()hoặc bất cứ điều gì tương đương), thì không có nút gửi nào được coi là thành công và không có giá trị nào của chúng được đưa vào dữ liệu đã gửi. (Lưu ý rằng nếu bạn gửi biểu mẫu bằng cách sử dụng submitElement.click()thì việc gửi mà bạn có tham chiếu được coi là hoạt động; điều này thực sự không thuộc câu hỏi của bạn vì ở đây nút gửi không rõ ràng nhưng tôi nghĩ tôi sẽ bao gồm nó đối với những người đọc phần đầu tiên và tự hỏi làm thế nào để làm cho nút gửi thành công thông qua việc gửi biểu mẫu JS. Tất nhiên, trình xử lý onsubmit của biểu mẫu sẽ vẫn bắn theo cách này trong khi họ sẽ không thông qua form.submit()một ấm cá khác ...)

Nếu biểu mẫu được gửi bằng cách nhấn Enter trong khi ở trường không phải là văn bản, thì thực tế nó sẽ xuống tác nhân người dùng để quyết định những gì nó muốn ở đây. Các thông số kỹ thuật không nói bất cứ điều gì về nộp một hình thức sử dụng nhập trong khi chìa khóa trong một lĩnh vực nhập văn bản (nếu bạn tab để một nút và kích hoạt nó bằng cách sử không gian hoặc bất cứ điều gì, sau đó không có vấn đề như cụ thể mà nút gửi được một cách rõ ràng được sử dụng). Tất cả những gì nó nói là một biểu mẫu phải được gửi khi kích hoạt nút gửi, thậm chí đó không phải là một yêu cầu nhấn enter, ví dụ như nhập văn bản sẽ gửi biểu mẫu.

Tôi tin rằng Internet Explorer chọn nút gửi xuất hiện đầu tiên trong nguồn; Tôi có cảm giác rằng Firefox và Opera chọn nút có tabindex thấp nhất, quay lại định nghĩa đầu tiên nếu không có gì khác được xác định. Ngoài ra còn có một số phức tạp liên quan đến việc liệu các đệ trình có thuộc tính giá trị không mặc định IIRC hay không.

Điểm cần lưu ý là không có tiêu chuẩn được xác định cho những gì xảy ra ở đây và nó hoàn toàn nằm trong tầm ngắm của trình duyệt - càng nhiều càng tốt trong bất cứ điều gì bạn đang làm, hãy cố gắng tránh dựa vào bất kỳ hành vi cụ thể nào. Nếu bạn thực sự phải biết, có lẽ bạn có thể tìm hiểu hành vi của các phiên bản trình duyệt khác nhau nhưng khi tôi điều tra điều này một thời gian trước đó có một số điều kiện khá phức tạp (tất nhiên có thể thay đổi với các phiên bản trình duyệt mới) và tôi khuyên bạn nên bạn nên tránh nó nếu có thể!


1
Re para 2: Câu hỏi cơ bản của tôi là liệu có bất kỳ thông số nào trong tác động của "Nếu trình duyệt cung cấp bất kỳ phương tiện nào để gửi biểu mẫu mà không chỉ định kiểm soát gửi ...". Nhưng tôi tập hợp từ câu trả lời của David rằng không có. Quan điểm của tôi về IE là đôi khi nhấn Enter gửi biểu mẫu và không đặt bất kỳ nút gửi nào. Hậu quả là, nếu bạn có nhiều biểu mẫu gửi đến cùng một tập lệnh, bạn không thể dựa vào các nút gửi để phân biệt chúng. Điều này xuất hiện trong dự án tôi đang làm việc.
Stewart

1
Phần khung đoạn đầu tiên rất hữu ích - cảm ơn.
rbassett

63

HTML 4 không làm cho nó rõ ràng. Dự thảo làm việc HTML5 hiện tại chỉ định rằng nút gửi đầu tiên phải là mặc định :

Một formnút mặc định của phần tử là người đầu tiên nút gửi trong trật tự câychủ sở hữu dưới hình thứcformyếu tố.

Nếu tác nhân người dùng hỗ trợ cho phép người dùng gửi biểu mẫu ngầm (ví dụ: trên một số nền tảng nhấn phím "enter" trong khi trường văn bản được tập trung hoàn toàn gửi biểu mẫu), thì làm như vậy đối với biểu mẫu có nút mặc địnhkích hoạt được xác định hành vi phải khiến tác nhân người dùng chạy các bước kích hoạt nhấp chuột tổng hợp trên nút mặc định đó .


Ok, đó là những gì nó phải làm. Tôi có thể sử dụng?
Pacerier

Tôi rất vui khi thấy "đệ trình ngụ ý" trong HTML5.
Clint Pachl

61

Khá nhiều thứ của Andrezj đã đóng đinh ... nhưng đây là một giải pháp đa trình duyệt dễ dàng.

Hình thức như thế này:

<form>
    <input/>
    <button type="submit" value="some non-default action"/>
    <button type="submit" value="another non-default action"/>
    <button type="submit" value="yet another non-default action"/>

    <button type="submit" value="default action"/>
</form>

và tái cấu trúc cho điều này:

<form>
    <input/>

    <button style="overflow: visible !important; height: 0 !important; width: 0 !important; margin: 0 !important; border: 0 !important; padding: 0 !important; display: block !important;" type="submit" value="default action"/>

    <button type="submit" value="some non-default action"/>
    <button type="submit" value="another non-default action"/>
    <button type="submit" value="yet another non-default action"/>
    <button type="submit" value="still another non-default action"/>

    <button type="submit" value="default action"/>
</form>

Vì thông số W3C chỉ ra nhiều nút gửi là hợp lệ, nhưng bỏ qua hướng dẫn về cách tác nhân người dùng nên xử lý chúng, các nhà sản xuất trình duyệt còn lại để thực hiện khi họ thấy phù hợp. Tôi thấy rằng họ sẽ gửi nút gửi đầu tiên trong biểu mẫu hoặc gửi nút gửi tiếp theo sau trường biểu mẫu hiện đang tập trung.

Thật không may, chỉ cần thêm một phong cách hiển thị: không có; sẽ không hoạt động vì thông số W3C chỉ ra bất kỳ yếu tố ẩn nào sẽ bị loại trừ khỏi các tương tác của người dùng. Vì vậy, ẩn nó trong tầm nhìn thay thế!

Trên đây là một ví dụ về giải pháp tôi đã đưa vào sản xuất. Nhấn phím enter sẽ kích hoạt việc gửi biểu mẫu mặc định là hành vi như mong đợi, ngay cả khi các giá trị không mặc định khác xuất hiện và trước nút gửi mặc định trong DOM. Phần thưởng cho tương tác chuột / bàn phím với đầu vào người dùng rõ ràng trong khi tránh các trình xử lý javascript.

Lưu ý: việc lập bảng thông qua biểu mẫu sẽ không hiển thị tiêu điểm cho bất kỳ yếu tố trực quan nào nhưng vẫn sẽ khiến nút vô hình được chọn. Để tránh sự cố này, chỉ cần đặt thuộc tính tabindex tương ứng và bỏ qua thuộc tính tabindex trên nút gửi vô hình. Mặc dù có vẻ không phù hợp để quảng bá các kiểu này thành quan trọng, nhưng chúng nên ngăn mọi khuôn khổ hoặc kiểu nút hiện có can thiệp vào sửa lỗi này. Ngoài ra, những kiểu nội tuyến đó chắc chắn là hình thức kém, nhưng chúng tôi đang chứng minh các khái niệm ở đây ... không viết mã sản xuất.


5
Cảm ơn. Tình cờ gặp màn hình: không có vấn đề gì cả. Thay vì thu nhỏ nút, bạn cũng có thể di chuyển nó ra khỏi trang bằng cách thay thế nó bằng a <div style="position: fixed; left: -1000px; top: -1000px />. Chỉ còn một điều cần quan tâm: Chỉ cần thu nhỏ hoặc di chuyển nút ra khỏi luồng trang bằng CSS có thể gây ra các vấn đề WAI, bởi vì trình đọc màn hình vẫn sẽ thấy nút mặc định.
Stefan Haberl

2
CẢM ƠN BẠN @James cho câu trả lời chi tiết này.
Nathan

1
Điều này làm việc cho tôi, cảm ơn. Tôi đã phải thêm cái này cho viền nút: none; để làm cho nó không hài lòng
Macumbaomuerte

4
Bạn chỉ có thể đặt thuộc tính tabindex của nút ẩn thành -1
tvanc

2
Cái <input/>đó để làm gì vậy?
Sz.

16

Tôi nghĩ rằng bài đăng này sẽ giúp ích nếu ai đó muốn làm điều đó với jQuery:

http://greatwebguy.com/programming/dom/default-html-button-submit-on-enter-with-jquery/

Giải pháp cơ bản là:

$(function() {
    $("form input").keypress(function (e) {
    if ((e.which && e.which == 13) || (e.keyCode && e.keyCode == 13)) {
        $('input[type=submit].default').click();
        return false;
    } else {
        return true;
    }
    });
});

và một cái khác tôi thích là:

jQuery(document).ready(function() {
$("form input, form select").live('keypress', function (e) {
if ($(this).parents('form').find('button[type=submit].default, input[type=submit].default').length <= 0)
return true;

if ((e.which && e.which == 13) || (e.keyCode && e.keyCode == 13)) {
$(this).parents('form').find('button[type=submit].default, input[type=submit].default').click();
return false;
} else {
return true;
}
});
}); 

jQuery.Event luôn có .wichthuộc tính của nó . Ngoài ra, không cần phải quay lại DOM .keyCode(hoặc .charCodecho vấn đề đó).
Arjan

Một vấn đề khác liên quan đến jQuery ở đây là truy vấn kép không cần thiết. Do không cần phải trả về true, ngoài ra, phiên bản jQuery trở nên thực sự rõ ràng và ngắn gọn về việc tích hợp các mức giảm được Arjan khuyên trước đây.
soletan

Tôi đã sử dụng phím tắt thay vì nhấn phím (tránh chờ gõ phím) và tôi đã thêm e.preventDefault();vào phần đầu của chức năng này để tránh thực hiện nút mặc định "thực". Hoạt động thực sự tốt.
Matt Roy

6

Tôi đã có một biểu mẫu với 11 nút gửi trên đó và nó sẽ luôn sử dụng nút gửi đầu tiên khi người dùng nhấn enter. Tôi đọc ở nơi khác rằng không nên có nhiều nút gửi trên một biểu mẫu và cách tốt nhất để làm điều này là có nút bạn muốn làm mặc định, như là nút gửi duy nhất trên biểu mẫu. Các nút khác phải được tạo thành "TYPE = BUTTON" và một sự kiện onClick được thêm vào đó gọi thói quen gửi của riêng bạn trong Javascript. Một cái gì đó như thế này: -

<SCRIPT Language="JavaScript">
function validform()
{
  // do whatever you need to validate the form, and return true or false accordingly
}

function mjsubmit()
{
  if (validform()) { document.form1.submit(); return true;}
  return false;
}
</SCRIPT>
<INPUT TYPE=BUTTON NAME="button1" VALUE="button1" onClick="document.form1.submitvalue='button1'; return mjsubmit();">
<INPUT TYPE=BUTTON NAME="button2" VALUE="button2" onClick="document.form1.submitvalue='button2'; return mjsubmit();">
<INPUT TYPE=SUBMIT NAME="button3" VALUE="button3" onClick="document.form1.submitvalue='button3'; return validform();">
<INPUT TYPE=BUTTON NAME="button4" VALUE="button4" onClick="document.form1.submitvalue='button4'; return mjsubmit();">

Ở đây, button3 là mặc định và mặc dù bạn đang lập trình gửi biểu mẫu với các nút khác, thói quen mjsubmit xác nhận chúng. HTH.


19
Ý kiến ​​tồi. Biểu mẫu của bạn sẽ không hoạt động với JS bị vô hiệu hóa. JS nên được sử dụng không phô trương.
BalusC

7
Rất ít trình duyệt đã tắt JS theo mặc định, ngay cả những trình duyệt trên iPod! Trên biểu mẫu tôi đã trích dẫn, tắt JS sẽ khiến nó vô dụng! Quá nhiều bản lề khi chạy JS.
đồ họa

7
Bị tắt theo mặc định hoặc không, những người đã tắt JS không cần phải bật nó chỉ để khắc phục một chút khó khăn như vậy.
Stewart

2
Loại hình nào có 11 nút gửi ?? ( tò mò )
Ben

2
Lý do lớn nhất mà tôi thấy khi xác thực Javascript không phô trương là Javascript khó hiểu có xu hướng khó sử dụng. Tôi không chắc chắn làm thế nào để đủ điều kiện những gì tôi nghĩ, nhưng khi tôi thấy các trang hoàn toàn phụ thuộc vào JS, tôi cũng cá là tôi có thể làm một số thứ khó khăn với DOM của tôi và làm một cái gì đó ngoài ý muốn trên máy chủ.
Samantha Branham

6

Điều này bây giờ có thể được giải quyết bằng cách sử dụng flexbox:

HTML

<form>
    <h1>My Form</h1>
    <label for="text">Input:</label>
    <input type="text" name="text" id="text"/>

    <!-- Put the elements in reverse order -->
    <div class="form-actions">
        <button>Ok</button> <!-- our default action is first -->
        <button>Cancel</button>
    </div>
</form>

CSS

.form-actions {
    display: flex;
    flex-direction: row-reverse; /* reverse the elements inside */
}

Giải thích
Sử dụng hộp flex, chúng ta có thể đảo ngược thứ tự của các phần tử trong vùng chứa sử dụng display: flexbằng cách sử dụng quy tắc CSS : flex-direction: row-reverse. Điều này không yêu cầu CSS hoặc các yếu tố ẩn. Đối với các trình duyệt cũ không hỗ trợ flexbox, họ vẫn nhận được giải pháp khả thi nhưng các yếu tố sẽ không bị đảo ngược.

Bản giới thiệu
http://codepen.io/Godwin/pen/rLVKjm


2

Tôi đã vật lộn với cùng một câu hỏi vì tôi đã gửi nút ở giữa từ đó chuyển hướng gửi đến một trang khác, như vậy:

<button type="submit" onclick="this.form.action = '#another_page'">More</button>

Khi người dùng nhấn phím enter, nút này đã được bấm thay vì nút gửi khác.

Vì vậy, tôi đã thực hiện một số thử nghiệm nguyên thủy bằng cách tạo một từ với nhiều nút gửi và các tùy chọn hiển thị khác nhau và cảnh báo sự kiện onclick đã nhấp vào nút nào: https://jsfiddle.net/aqfy51om/1/

Trình duyệt và hệ điều hành tôi đã sử dụng để thử nghiệm:

CÁC CỬA SỔ

  • Google Chrome 43 (xin chào google: D)
  • Mozilla Firefox 38
  • Internet Explorer 11
  • Opera 30.0

OSX

  • Google Chrome 43
  • Safari 7.1.6

Hầu hết các trình duyệt này đã nhấp vào nút đầu tiên mặc dù các tùy chọn hiển thị được áp dụng ngoại trừ IE và Safari đã nhấp vào nút thứ ba, đó là "hiển thị" bên trong thùng chứa "ẩn":

<div style="width: 0; height: 0; overflow: hidden;">
    <button type="submit" class="btn btn-default" onclick="alert('Hidden submit button #3 was clicked');">Hidden submit button #3</button>
</div>

Vì vậy, đề nghị của tôi, mà tôi sẽ sử dụng bản thân mình, là:

Nếu biểu mẫu của bạn có nhiều nút gửi với ý nghĩa khác nhau, thì hãy bao gồm nút gửi với hành động mặc định ở đầu biểu mẫu:

  1. Hiển thị đầy đủ
  2. Được bọc trong một thùng chứa với style="width: 0; height: 0; overflow: hidden;"

EDIT Một tùy chọn khác có thể là bù nút (vẫn ở đầu từ) style="position: absolute; left: -9999px; top: -9999px;", chỉ cần thử nó trong IE - đã hoạt động, nhưng tôi không biết nó có thể làm gì khác, ví dụ như in ..


1

Từ ý kiến ​​của bạn:

Hậu quả là, nếu bạn có nhiều biểu mẫu gửi đến cùng một tập lệnh, bạn không thể dựa vào các nút gửi để phân biệt chúng.

Tôi thả một <input type="hidden" value="form_name" />vào mỗi hình thức.

Nếu gửi bằng javascript: thêm gửi sự kiện vào biểu mẫu, không nhấp vào sự kiện vào nút của họ. Người dùng Sa lượn không chạm vào chuột của họ rất thường xuyên.


Thật vậy, nhưng điều đó đặt ra câu hỏi này: stackoverflow.com/questions/541869/NH
Stewart

1

Khi bạn có nhiều nút gửi trong một biểu mẫu và người dùng nhấn phím ENTER để gửi biểu mẫu từ trường văn bản, mã này sẽ ghi đè chức năng mặc định, bằng cách gọi sự kiện gửi trên biểu mẫu từ sự kiện nhấn phím. Đây là mã:

$('form input').keypress(function(e){

    if ((e.which && e.which == 13) || (e.keyCode && e.keyCode == 13)){ $(e.target).closest('form').submit(); return false; }
    else return true;

});

Đơn giản và khắc phục sự cố
chập chững

1

Điều kỳ lạ là nút đầu tiên Enter luôn đi đến nút đầu tiên bất kể có thể nhìn thấy hay không, ví dụ như sử dụng jquery show/hide(). Thêm thuộc tính .attr('disabled', 'disabled')ngăn chặn nhận hoàn toàn Nhập nút gửi. Đó là vấn đề ví dụ khi điều chỉnh mức độ hiển thị của nút Chèn / Chỉnh sửa + Xóa trong hộp thoại ghi. Tôi tìm thấy ít hackish và đơn giản hơn Chỉnh sửa ở phía trước Chèn

<button type="submit" name="action" value="update">Update</button>
<button type="submit" name="action" value="insert">Insert</button>
<button type="submit" name="action" value="delete">Delete</button>

và sử dụng mã javascript:

$("#formId button[type='submit'][name='action'][value!='insert']").hide().attr('disabled', 'disabled');
$("#formId button[type='submit'][name='action'][value='insert']").show().removeAttr('disabled');

0

công thức của tôi:

<form>
<input type=hidden name=action value=login><!-- the magic! -->

<input type=text name=email>
<input type=text name=password>

<input type=submit name=action value=login>
<input type=submit name=action value="forgot password">
</form>

Nó sẽ gửi trường ẩn mặc định nếu không có nút nào được 'nhấp'.

nếu chúng được nhấp, chúng có ưu tiên và giá trị của nó được thông qua.


2
Nhưng hành vi này được quy định bởi tiêu chuẩn? Và các trình duyệt có thể được tin cậy để thực hiện nó một cách chính xác?
Stewart

câu hỏi hay. Tôi đã thử nghiệm nó để hoạt động trên tất cả các trình duyệt A (từ ma trận trình duyệt yui) và đó là sự đồng ý nhất mà tôi có thể có trong cuộc sống thực (bất kể tiêu chuẩn quy định là gì)
gcb

@yellowandred chuyện gì xảy ra? sẽ xem sau
gcb

1
lỗi của tôi, tôi đã thay đổi {type = "hidden"} và tôi đã không nhận thấy các giá trị 'name' tương tự.
Vàng và đỏ

Điều này không làm việc cho tôi trong IE11 hoặc Fx30. Giá trị luôn được đặt thành giá trị ẩn.
Jamie Kitson

0

Một giải pháp khác mà tôi đã sử dụng là chỉ có một nút trong biểu mẫu và giả mạo các nút khác.

Đây là một ví dụ:

<form>
  <label for="amount">Amount of items</label>
  <input id="amount" type="text" name="amount" />
  <span id="checkStock" class="buttonish">Check stock</span>
  <button type="submit" name="action" value="order">Place order</button>
</form>

Sau đó, tôi định kiểu các phần tử span để trông giống như một nút. Trình nghe JS quan sát nhịp và thực hiện thao tác mong muốn sau khi nhấp.

Không nhất thiết phải phù hợp với mọi tình huống, nhưng ít nhất nó cũng khá dễ thực hiện.


1
Dự phòng cho người dùng đã tắt JS là gì?
Stewart

Người dùng bị vô hiệu hóa JS sẽ không thể sử dụng internet, ngày nay nó đơn giản như vậy.
Christoffer Bubach

0

Từ thông số kỹ thuật HTML 4 :

Nếu một biểu mẫu chứa nhiều nút gửi, chỉ có nút gửi được kích hoạt là thành công.

Điều này có nghĩa là được cung cấp nhiều hơn 1 nút gửi và không được kích hoạt (nhấp), không có nút nào thành công.

Và tôi cho rằng điều này có ý nghĩa: Hãy tưởng tượng một hình thức khổng lồ với nhiều nút gửi. Ở trên cùng, có một nút "xóa bản ghi này", sau đó rất nhiều đầu vào theo sau và ở phía dưới có một nút "cập nhật bản ghi này". Một người dùng nhấn enter trong khi ở một trường ở cuối biểu mẫu sẽ không bao giờ nghi ngờ rằng anh ta hoàn toàn nhấn "xóa bản ghi này" từ đầu.

Do đó, tôi nghĩ rằng không nên sử dụng nút đầu tiên hoặc bất kỳ nút nào khác mà người dùng không xác định (nhấp). Tuy nhiên, các trình duyệt đang làm điều đó tất nhiên.


-2

EDIT: Xin lỗi, khi viết câu trả lời này, tôi đã suy nghĩ về việc gửi các nút theo nghĩa chung. Câu trả lời dưới đây không phải là về nhiều type="submit"nút, vì nó chỉ để lại một nút type="submit"và thay đổi nút khác thành type="button". Tôi để lại câu trả lời ở đây để tham khảo trong trường hợp giúp ai đó có thể thay đổi typehình thức của họ:

Để xác định nút nào được nhấn khi nhấn enter, bạn có thể đánh dấu nó type="submit"và các nút khác đánh dấu chúng bằng type="button". Ví dụ:

<input type="button" value="Cancel" />
<input type="submit" value="Submit" />

Nhập "nút" không khiến biểu mẫu được gửi. Nó chỉ được sử dụng để kích hoạt các kịch bản phía máy khách.
Stewart

chính xác, đó là lý do tại sao trình duyệt bỏ qua nó khi bạn nhấn enter và trình duyệt có kiểu "gửi" được thực thi. Bạn có thể sử dụng nút có loại "nút" để làm bất cứ điều gì khác khi nhấp vào chẳng hạn. Vui lòng xóa bỏ phiếu tiêu cực.
Jesús Carrera

Câu hỏi là về nhiều nút gửi .
Stewart

Ví dụ của tôi là hoàn toàn hợp lệ cho nhiều nút gửi. Loại có "trình" là loại được trình duyệt xác định để hoạt động như được nhấn (đó là câu hỏi về vấn đề gì). Sau đó, với nút khác, bạn có thể sử dụng nút này làm nút gửi cũng như sử dụng các sự kiện JavaScript như sự kiện onClick mà bạn có trong ví dụ của mình. Vì vậy, câu trả lời của tôi là có liên quan và không xứng đáng để bỏ phiếu. Xin vui lòng loại bỏ nó.
Jesús Carrera

1
Nếu quan điểm của bạn là đề nghị loại bỏ sự mơ hồ bằng cách chỉ thực hiện một trong số họ gõ "gửi" và sử dụng JavaScript để thực hiện các nút khác, thì đây là một bản sao của câu trả lời của đồ họa và như vậy đã bị coi là một ý tưởng tồi.
Stewart
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.