2017-03-20 17 views
0

value = "on"の2つのチェックボックスを使用しようとしています。もう1つはフォームを提出した後のリマーバー用です。このチェックボックスをクリックするたびに、彼らは常に "オン"を送信します。HTMLチェックボックスonclickは同じ値を毎回送信します

私は間違っていますか? は、ここに私のコード

var rdt = { 
 
    updateScroll: function() { 
 
    alert('klick scroll:' + gbi('scrollit').value); 
 
    gbi('main').removeChild(gbi('icontent')); 
 
    var ifr = document.createElement('iframe'); 
 
    ifr.id = 'icontent'; 
 
    ifr.src = gbi('urlinput').value; 
 
    ifr.scrolling = (gbi('scrollit').value == 'on') ? 'yes' : 'no'; 
 
    gbi('scroll_hid').value = (gbi('scrollit').value == 'on') ? 'on' : 'off'; 
 
    gbi('main').appendChild(ifr); 
 
    rdt.resizeView(); 
 
    } 
 

 

 
} 
 

 
function gbi(iD) { 
 
    return document.getElementById(iD); 
 
}
<input type="checkbox" id="scrollit" onclick="rdt.updateScroll()" checked> 
 
<input type="hidden" name="scroll" id="scroll_hid" value="<?php echo $scroll ?>">

パラメータ$スクロールは、URLをオーバーpredifineことができますが、私はそれを使用いけない場合、私はそれを使用する場合や、結果は同じでした。

+0

ここで、コードの2番目のチェックボックスはありますか? –

答えて

0

valuevalueonになっているためです。それはのようにチェックされているときは、値を取得する必要があります:それはそうでない場合はチェックされているチェックボックスの主な意図は、ユーザーを作るために

+0

こんにちは、私はこれをやろうとします:if(gbi( 'scrollit')。( 'checked')) {value = $(this)).val(); アラート(「ここにいる」); }警告は表示されません - 間違った方法であなたを理解しましたか? – newbieRB

+0

申し訳ありませんが、私のコードを更新すると、内部の2つのチェックボックスがあります。 – newbieRB

0

あるnullときに、その値を取得します。この場合

var value = null; 
$('#scrollit').click(function(){ 
    if($(this).is('checked')) 
    { 
     value = $(this).val(); 
    } 
}); 

そのオプションへ値に

を送信するために意図されていないオンまたはオフするあなたはここで詳細

このlinkを参照することができます主なもの

です

HTML入力要素を使用すると、フォームに提出する単一値( )を選択できます。次のように発生した問題の解決策がある

あなたは、チェックボックスの現在の状態、すなわちを確認することができ、あなたのコード

gbi('scrollit').checked 

var rdt = { 
 
    updateScroll: function() { 
 
    alert('klick scroll:' + gbn('scrollit').value); 
 
    gbi('main').removeChild(gbi('icontent')); 
 
    var ifr = document.createElement('iframe'); 
 
    ifr.id = 'icontent'; 
 
    ifr.src = gbi('urlinput').value; 
 
    ifr.scrolling = (gbi('scrollit').value == 'on') ? 'yes' : 'no'; 
 
    gbi('scroll_hid').value = (gbi('scrollit').value == 'on') ? 'on' : 'off'; 
 
    gbi('main').appendChild(ifr); 
 
    rdt.resizeView(); 
 
    } 
 
} 
 

 
function gbi(iD) { 
 
    return document.getElementById(iD); 
 
} 
 

 

 
function gbn(name) { 
 
    var x = document.getElementsByName(name); 
 
    var i; 
 
    var element; 
 
    for (i = 0; i < x.length; i++) { 
 
    if (x[i].type == "checkbox") { 
 
     element = x[i]; 
 
    } 
 
    } 
 
    return element; 
 
}
<input type="checkbox" name="scroll" id="scrollit" onclick="rdt.updateScroll()" checked> 
 
<input type="hidden" name="scroll" id="scroll_hid" value="<?php echo $scroll ?>">

+0

申し訳ありませんが、私のコードを更新すると、内部コードの2つのチェックボックスがあります。 – newbieRB

+0

@newbieRBとにかくid scrollによってアクセスしています –

+0

@newbieRB 'document.getElementsByName(" scroll ");'値を取得し、チェックボックスと可視性の両方で 'name = scroll'を使用するには隠しチェック –

0
に基づいて

以下で確認か

小さなループを追加してコードをより明確にして、すでに動作させる

updateScroll: 

    function() { 


       gbi('main').removeChild(gbi('icontent')); 
       var ifr = document.createElement('iframe'); 
       ifr.id='icontent'; 
       ifr.src=gbi('urlinput').value; 

     if (gbi('scrollit').value=='on' && gbi('scroll_hid').value!='on') 
     { ifr.scrolling='yes'; gbi('scroll_hid').value='on';} 
     else 
     { ifr.scrolling='no'; gbi('scroll_hid').value='';} 

       //ifr.scrolling=(gbi('scrollit').value=='on')?'yes':'no'; 
       //gbi('scroll_hid').value=(gbi('scrollit').value=='on')?'on':'off'; 
       gbi('main').appendChild(ifr); 
       rdt.resizeView(); 
      }, 
      rotate: function() { 
       rdt.w = parseInt(gbi('icontent').style.width); 
       rdt.h = parseInt(gbi('icontent').style.height); 
       gbi('icontent').style.width=gbi('icontentfoot').style.width = rdt.h+'px'; 
       gbi('icontent').style.height = rdt.w+'px'; 
      } 
関連する問題