2014-10-18 23 views
-1

我想創建一個簡單的JavaScript驗證碼基於字符串,我將在數組中更新。簡單的JavaScript驗證碼基於字符串從數組

它需要這樣的工作方式:

  • 我陣列(看起來像這樣:["black", "red", "blue", "green"]
  • 從我的陣列
  • 選擇一個隨機字符串替換在跨度選擇以「隨機字符串請寫隨機字符串下一個字段」
  • 然後檢查if ($.trim($(".contact-form input#header-answer").val()) === "random string")

現在我只創建了一個字符串,並從我的ARRA不是隨機的字符串有效的解決方案,那就是:

$(".contact-form form#gform_1").before('<div id="header-question"><span>please write "red" in the next field</span><input id="header-answer" type="text" name=""></div>'); 

if ($.trim($(".contact-form input#header-answer").val()) === "red") { 
    $(".contact-form form#gform_1").submit(); 
} 
else { 
    alert('wrong answer try again!'); 
    return false; 
} 
+2

這不是一個驗證碼...驗證碼使用圖像或聲音源製作,使它不可能電腦,並承認它的自動程序。因此,在跨度內使用純文本(可以被任何程序讀取並在毫秒內破解)只是沒用,它沒有任何意義。 – 2014-10-18 07:36:03

+0

服務器還需要知道「祕密」。一個好的瀏覽器調試器就足夠了 – 2014-10-18 07:41:20

+0

@Marco Bonelli你是對的,我知道!但我需要爲希伯來字符串創建簡單的驗證碼解決方案。大多數機器人不知道與希伯來語合作。如果你知道更好的解決方案,希伯來語字符串,我會很高興知道。 – user2413244 2014-10-18 07:53:39

回答

-1

雖然我與上述意見一致,我覺得標題是不正確。這是你正在尋找的小片段。我再次強調,上述評​​論是正確的,表示這不會成爲保護意見的安全方式。

var a = ["black", "red", "blue", "green"]; 
var item = a[Math.floor(Math.random()*a.length)]; 

$(".contact-form form#gform_1").before('<div id="header-question"><span>please write "' + item + '" in the next field</span></div>'); 

$(".contact-form form#gform_1").on("submit", function(e) { 
    if ($.trim($(".contact-form input#header-answer").val()) === item) { 
     //$(".contact-form form#gform_1").submit(); 
     alert("all good"); 
    } 
    else { 
     alert('wrong answer try again!'); 
     return false; 
    } 
}); 

http://jsfiddle.net/L9wcagLr/

+0

謝謝@Chris我需要爲希伯來語字符串創建簡單的驗證碼解決方案。大多數機器人不知道與希伯來語合作。如果你知道更好的解決方案,希伯來語字符串,我會很高興知道。 – user2413244 2014-10-18 07:54:53

+0

我不確定希伯來語字符串是否會產生很大的差異。它歸結爲你正在保護的內容以及停止漫遊器的重要性。 – Chris 2014-10-18 11:16:25

+0

@ user2413244 - 嘗試穆斯林的!?無論如何,大多數機器人對語言不感興趣 - 給他們一系列的位 – 2014-10-18 11:22:36