簡體   English   中英

如何在鼠標懸停時使按鈕可點擊

[英]How to make a button clickabled when hovered over

這個問題對你們中的許多人來說聽起來很奇怪。 我需要一個不能通過點擊觸發的按鈕。 這意味着它不會執行任何操作。 就像如果表單屬性action設置為next.html之類的東西,點擊不會導致它轉到下一頁。

當用戶將鼠標懸停在按鈕上時,它可以轉到下一個站點。 我這樣做的原因是因為機器人可以在不將鼠標懸停在按鈕上的情況下提交數據。 我希望這會阻止機器人向我的網站提交任何內容。

我真的沒有任何代碼,但是有什么方法可以在 Javascript/jQuery 中做到這一點嗎?

如果這令人困惑,請在評論中提出更多問題,我會盡力回答。

  1. 機器人搜索<form>元素
  2. 機器人查詢表單的action

如果您的頁面中沒有表單,機器人將不會跟隨您的表單action 如果這聽起來很奇怪:

  • 使用 JS 創建整個表單(沒有表單?沒有機器人。

無論哪種方式(特別是如果您關心 noJS 訪問者),您都需要驗證您的表單

  1. 在服務器端(這是最重要的)
  2. 在客戶端(JavaScript;如果他們忘記填寫某些內容,請通知您的用戶 - 錯別字)


在這里你可以找到一個方法示例


為什么你的hover方法/意圖不好:

  • 您只會弄亂 UI,從而造成糟糕的 UX。 而已。
  • 該表單已經存在於頁面上,顯示了機器人需要的所有內容。
  • 機器人不需要任何按鈕來提交您的表單。
  • 一些用戶可能會使用 TAB 鍵來聚焦提交按鈕 - 因此不涉及任何懸停,只是一個無法正常工作的糟糕表單。

現在我不確定這種技術在阻止機器人方面的效果如何。 如果你仍然想試一試,我會做這樣的事情:

HTML:

<form class="form" action="1.php" type="post">
  <input type="text">
  <input class="submitbutton" type="submit">
</form>

Javascript/jQuery:

var $form = $('.form'),
    $btn = $('.submitbutton');

// Disable submit button on page load
$btn.prop('disabled',true);

// Reactivate submit button on form hover
$form.hover(
  function(e){
    e.stopPropagation();
    $btn.prop('disabled',false);
  }, function(e){
    e.stopPropagation();
    $btn.prop('disabled',true);
  }
);

在 JSFiddle 上放了一個例子。

通常,單擊按鈕應提交表單。 如果你想強制這個問題,我認為你應該先嘗試禁用按鈕。

<span style="padding: 8px; background: red;"  onmouseout="this.firstChild.disabled='';"><input type="button" name="test" id="test" value="roll over me" onmouseover="this.disabled=true;"></span>

如此處的答案中所述:

Javascript:啟用/禁用鼠標懸停/鼠標移出按鈕

您的問題似乎是在不單擊按鈕的情況下導航到另一個頁面。

         <html>
            <head>
            </head>
            <body>
                <button onmouseover="go()"  id="button">hii</button>
                <script>
                    var anchor=document.createElement("a");
                    var button=document.getElementById("button");
                    anchor.href="alarm2.html";
                    function go()
                    {
                        button.onmouseover= anchor.click();

                    }
                </script>
            </body>
        </html>     

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM