1

これは、フォームのチェックボックスに Cookie を設定しようとしている関数です

function setCookie(c_name,value,exdays){    
    var exdate=new Date();
    exdate.setDate(exdate.getDate() + exdays);
    var c_value=escape(value) + ((exdays==null) ?
        "" : "; expires="+exdate.toUTCString());
    document.cookie=c_name + "=" + c_value;
}

function set_check(){
    var proceed = document.forms['form1']['proceed_opt[]'].checked;
    setCookie(proceed_opt[], proceed, 60*60*1);
    alert(proceed_opt[]);
}

私のフォームのチェックボックスはこのようなものです..

        <input type="checkbox" name="proceed_opt[]" value="I will upload new Image" onChange="set_check()";>
          Insert Option &quot;I will upload new Image&quot;
    </td>
</tr>
<tr>
    <td></td>
    <td colspan="2">
            &nbsp; 
          <input type="checkbox" name="proceed_opt[]" value="I approve this sample for a Night Light" onChange="set_check()";>
          Insert Option &quot;<font face="Arial, Helvetica, sans-serif" size="2">I approve this sample for a Night Light</font>&quot; 
    </td>
</tr>
<tr>
    <td></td>
    <td colspan="2">
            &nbsp; 
          <input type="checkbox" name="proceed_opt[]" value="Select One" onChange="set_check()";>
          Insert Option &quot;<font face="Arial, Helvetica, sans-serif" size="2">Select One</font>&quot; 
    </td>
</tr>     
<tr>
    <td></td>
    <td colspan='2'>
         &nbsp;
        <input type="checkbox" name="proceed_opt[]" value="other" onChange="set_check()">
          Insert Option &quot;Other See comments&quot;
    </td>
</tr>

しかし、ここではクッキーが設定されていません...フォームのチェックボックスにクッキーを設定する方法を誰か教えてください...

4

2 に答える 2

1

あなたのコードにはいくつかの問題があります。私はそれを少しきれいにして、いくつかの仮定を立てました。基本的に、あなたは物事を過度に複雑にしています。

フィールドを誤って参照していたため、エラーが発生しました。このアプローチはより単純です (まだ理想的ではありませんが、機能します)。

フィドル: http://jsfiddle.net/mAnUQ/

HTML:

<form name="form1">
<div>
<input type="checkbox" id="check1" name="proceed_opt[]" value="I will upload new Image" onChange="set_check(this)">
        <label for="check1">I will upload new Image</label>
    </div>
<div>
          <input type="checkbox" id="check2" name="proceed_opt[]" value="I approve this sample for a Night Light" onChange="set_check(this)">
    <label for="check2">I approve this sample for a Night Light</label>
    </div>
<div>              
          <input type="checkbox" id="check3" name="proceed_opt[]" value="Select One" onChange="set_check(this)">
    <label for="check3">Select One</label>
    </div>
    <div>
        <input type="checkbox" id="check4" name="proceed_opt[]" value="other" onChange="set_check(this)">
        <label for="check4">Other See comments</label>
    </div>
</form>

JavaScript:

function setCookie(c_name,value,exdays){    
    var exdate=new Date();
    exdate.setDate(exdate.getDate() + exdays);
    var c_value=escape(value) + ((exdays==null) ?
        "" : "; expires="+exdate.toUTCString());
    document.cookie=c_name + "=" + c_value;
}

function set_check(me){
    setCookie(me.value, me.checked, 60*60*1);
    console.log(me.value);
    console.log(me.checked);
    console.log(document.cookie)
}
于 2012-05-18T03:02:11.597 に答える
0

これがあなたを正しい方向に導くかどうかを確認してください。これにより、チェックボックスの値で「proceed_opt」という名前の Cookie が設定されます。

HTML:

<form name="form1"><table><tr><td></td><td>&nbsp; <input type="checkbox" name="proceed_opt[]" value="I will upload new Image" onclick="if(this.checked){set_check(this);}">
      Insert Option &quot;I will upload new Image&quot;</td></tr>
<tr><td></td><td colspan="2">
        &nbsp; 
      <input type="checkbox" name="proceed_opt[]" value="I approve this sample for a Night Light" onclick="if(this.checked){set_check(this);}">
      Insert Option &quot;<font face="Arial, Helvetica, sans-serif" size="2">I approve this sample for a Night Light</font>&quot; </td></tr><tr><td></td><td colspan="2">
        &nbsp; 
      <input type="checkbox" name="proceed_opt[]" value="Select One" onclick="if(this.checked){set_check(this);}">
      Insert Option &quot;<font face="Arial, Helvetica, sans-serif" size="2">Select One</font>&quot; </td></tr>     
 <tr><td></td><td colspan='2'> &nbsp;
 <input type="checkbox" name="proceed_opt[]" value="other" onclick="if(this.checked){set_check(this);}">
     Insert Option &quot;Other See comments&quot;</td></tr>?</table></form>

ジャバスクリプト:

function setCookie(c_name,value,exdays)
{
var exdate=new Date();
exdate.setDate(exdate.getDate() + exdays);
var c_value=escape(value) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString());
document.cookie=c_name + "=" + c_value;
}

function set_check(proceed){

var proceed_opt = proceed.value;
setCookie("proceed_opt", proceed_opt, 60*60*1);
alert (proceed_opt);
}
于 2012-05-18T02:25:57.267 に答える