1

こんにちは、私のサイトにお問い合わせフォームがあります。このフォームには、javascript のチェックボックス ボタンがあります。

これは私のフォームの終了コードです: この div タグは私のチェックボックスです:

<p><label for="agree">(*) I agree whit the transport terms and conditions:</label><div id="cb"></div></p>
<p>hi
<input name="Submit / Send" type="submit" class="submit" id="Submit / Send" tabindex="370" value="Submit / Send" />
<p id="error_zone" style="visibility:hidden;">Errors: There are some errors in the form. Please correct them.</p>
</p>

これは JavaScript テキスト ボタンです。

<script type="text/javascript">
    var cbh = document.getElementById('cb');
    var val = '1';
    var cap = '';

    var cb = document.createElement('input');
    cb.type = 'checkbox';
    cbh.appendChild(cb);
    cb.name = val;
    cb.value = cap;
    cbh.appendChild(document.createTextNode(cap));
</script>

また、他のフォーム要素に対して spry 検証を利用しています。キャプチャチェックボックスを作成するためにjavascriptでチェックボックスを検証したいと思います! 検証メッセージをポップアップさせて、spry 検証を妨げないようにすることは可能ですか?! javascript がオフになっていると、フォーム als を送信できなくなることが重要です。

誰かが私を助けてくれることを願っています。お時間をありがとうございました!

私はこれを実現しようとしています: http://uxmovement.com/forms/captchas-vs-spambots-why-the-checkbox-captcha-wins/

spry 検証のスニペット:

<script type="text/javascript">
var errorsOnSubmit = function(form){
 var ret = Spry.Widget.Form.validate(form);
 var errorZone= document.getElementById('error_zone');
 if (!ret){
      errorZone.style.visibility = 'visible';
      errorZone.style.backgroundColor = 'red';
 }else{
      errorZone.style.visibility = 'hidden';
 }
 return ret;
}
</script>
<script type="text/javascript">
var spryselect1 = new Spry.Widget.ValidationSelect("spryselect1", {isRequired:false,  invalidValue:"1", validateOn:["blur", "change"]});
var spryselect2 = new Spry.Widget.ValidationSelect("spryselect2", {isRequired:false, invalidValue:"1", validateOn:["blur", "change"]});
var spryselect3 = new Spry.Widget.ValidationSelect("spryselect3", {isRequired:false, invalidValue:"1", validateOn:["blur", "change"]});
4

2 に答える 2

0

このコードを試すことができます

function agree() {
if (document.getElementById("cb").checked){
alert("checked");
document.getElementById("Send").setAttribute(disabled,"false");
document.getElementById(seny).
}else{
alert("unchecked");
document.getElementById("Send").disabled="true";
}
}

<p>
            <input type="checkbox" id="cb" onclick="javascript:agree();">
            <label for="agree">
                (*) I agree whit the transport terms and conditions:
            </label>
        </p>
        <p id="seny">
            <input disabled="disabled" name="Send" type="submit" class="submit"
                id="Send" tabindex="370" value="Submit / Send" />
        </p>
于 2012-04-05T06:40:15.617 に答える
0

要素を作成した後、チェックボックスに ID を付与します

cb.type = 'checkbox';
cb.id = 'mycheckbox';
cbh.appendChild(cb);

これで、 を使用して要素を選択し、document.getElementById('mycheckbox')それを検証できます。

チェックボックスを検証するためのスニペットを次に示します

var myform = document.forms("yourformname");
myform.onsubmit = function() {

    //validate the checkbox
    var checkb = document.getElementById('mycheckbox');
    if(checkb.checked != true) { 
       alert('not checked');
    }

    //rest of the validation
};

更新 1:

テストしていませんが、動作するはずです

var errorsOnSubmit = function(form){

  //validate the checkbox
  var checkb = document.getElementById('mycheckbox');
  if(checkb.checked != true) { 
     alert('not checked');
  }

 var ret = Spry.Widget.Form.validate(form);
 var errorZone= document.getElementById('error_zone');
 if (!ret){
      errorZone.style.visibility = 'visible';
      errorZone.style.backgroundColor = 'red';
 }else{
      errorZone.style.visibility = 'hidden';
 }
 return ret;
}
于 2012-04-05T05:53:35.837 に答える