2

私は、単純な連絡先フォームでスパムを阻止するための検証を追加する任務を負っています。ここでの唯一の問題は、すべてのフォーム処理が salesforce.com 側で行われることです。フォームを処理するファイルがないため、単純なフォーム検証を追加することはできません。

フォームのアクションは次のように Salesforce に送信されます。

<form action="https://www.salesforce.com/servlet/servlet.WebToLead?encoding=UTF-8" method="POST">

私はいくつかのJavaScript検証を試みましたが、フォームは何があっても送信されます。フォームのアクションを、作成した新しい php ページに変更する必要があると感じています。そこで検証を行うことができます。合格した場合は、何らかの方法でこのフォーム アクションに移動し、フォーム処理を終了するように指示する必要がありますか?

jQuery を使用して非表示のフォーム フィールドのアイデアを試してみました。ここでは、ボットだけが何らかの方法で入力する非表示のフォーム フィールドを配置します。したがって、そのフィールドに値がある場合は、それがスパムであるというアラートを出しますが、これは機能しません! フォームは送信を続けました。

うーん、わからない、助けてくださいありがとう!

=====編集====

ここで何が問題なのですか?

私のボタン

<input type="button" id="submit" value="Submit">

私のjquery

jQuery(ドキュメント).レディ(関数() {

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

    var human = $("#human").val();

    if(human == 4 ){
        $('#form_submit').submit();
    }

    else {
        alert('Please answer the validation question correctly.');
    }
});

});

私のフォームアクション:

<form id="form_submit" action="https://www.salesforce.com/servlet/servlet.WebToLead?encoding=UTF-8" method="POST">

そして私の「人間」フィールド:

<input  id="human" maxlength="20" name="human" size="30" type="text" />
4

2 に答える 2

-1

Change your submit button to a normal button. In jQuery add a click method to perform your spam logic. When you really want to submit you can submit the page through jQuery.

Example:

<form id="form_submit" action="https://www.salesforce.com/servlet/servlet.WebToLead?encoding=UTF-8" method=" POST">

$("#submit").click(function() {
  if(!spam){
    $('#form_submit').submit();
  }
});
于 2013-05-25T22:42:30.037 に答える