2016-08-08 15 views
0

Ich versuche, einen Standardwert für 'nicht aktiviert', aber funktioniert nicht. Ich wollte es. Wenn angehakt speichert = "Ja", wenn nicht geprüft Stores = "Nein". Ich weiß nicht, warum ich nicht arbeite. Die Eingaben in der Datenbank werden immer mit dem Wert 'Ja' eingefügt. Obwohl sie das Kontrollkästchen aktiviert oder deaktiviert haben.Wie man den unchecked Wert zu Checkbox definiert?

<input type="hidden" name="imagem" value="no" /> 
<input id="imagem" type="checkbox" value="yes" >Imagem<br /> 

<input type="hidden" name="som" value="no" /> 
<input id="som" type="checkbox" value="yes" >Som<br /> 

<input type="hidden" name="animacao" value="no" /> 
<input id="animacao" type="checkbox" value="yes" >Animação<br /> 


<button type="button" id="enviar">Cadastrar</button><br /> 

<script src="http://code.jquery.com/jquery-1.10.2.js"></script> 
<script> 
    $(document).ready(function() { 
     $("#enviar").click(function() { 
      var vjson = {}; 
      $("input").each(function(index) { 
       vjson[$(this).attr("id")] = $(this).val(); 
      }); 
      // console.log(JSON.stringify(vjson)); 
       $.post('<%=request.getContextPath()%>/testeform', { json: JSON.stringify(vjson), email : vjson.email}, 
        function(returnedData){ 
         console.log(returnedData); 
       }); 
     }); 
    }); 
</script> 
+1

wo der Jquery-Code ist ?? –

+1

Der Standardwert ist der Wert, der im Wertparameter angegeben wurde. In Ihrem Fall haben Sie es als "Ja" angegeben. Wenn Sie den Wert nicht ändern, bleibt er erhalten. –

+0

Der versteckte Eingang und das Kontrollkästchen haben nichts gemeinsam .... Was erwartest du genau zu passieren? – epascarello

Antwort

-1

Ich hoffe, dass diese eine Hilfe, die Sie

<script type="text/javascript"> 
      function check() { 

       $(document).ready(function() { 

        if($("#ContentPlaceHolder1_chk_boothid").prop('checked') == true) 
        { 
         $('input[type=checkbox][id*=ContentPlaceHolder1_chk_booth_]').each(function() { this.checked = true; }); 

        } 
        else 
        { 
         $('input[type=checkbox][id*=ContentPlaceHolder1_chk_booth_]').each(function() { this.checked = false; }); 

        } 
       }); 
      } 
        </script> 
+1

Der Code in dieser Antwort scheint mit dem Markup in der Frage nichts zu tun zu haben. – Pointy

1

Erste

vjson[$(this).attr("id")] = $(this).val(); 

Da Ihr Kontrollkästchen haben keine id für diesen Eingang Ihren Wert Attribute, wenn iteriert wird, um ein zu setzen Eigentum genannt "undefined".

Sie können prüfen, ob das Kontrollkästchen aktiviert wird, wenn es das Kontrollkästchen Wert verwenden, wenn es nicht den verborgenen Eingangswählschalter unter Verwendung der ID erhalten wird

$("input[type=checkbox]").each(function() { 
    vjson[this.name] = $(this).is(":checked") ? this.value : $("#"+this.name).val(); 
}); 

Natürlich können Sie nur nutzen könnten Radio Knöpfe. Wenn Sie denselben Namen vergeben, kann immer nur einer überprüft werden. Dann nutzen Sie einfach die :checked Wähler, die richtigen zu bekommen und seinen Wert erhalten:

<input type="radio" name="som" value="no"> 
<input type="radio" name="som" value="yes"> 

var value = $("input[name=som]:checked").val(); 

Oder Sie können einfach serialize() oder serializeArray() verwenden haben jQuery alle Werte eines Formulars finden und sie in einen Namen/Wert-Paar Abfrage oder Array von Werten. Und wenn Sie es als JSON-Text senden müssen, dann wandeln Sie einfach einen in JSON um.

Demo

$("button").click(function() { 
 
    var data = $("form").serializeArray(); 
 
    data = data.reduce(function(values,item){ 
 
    values[item.name]=item.value; 
 
    return values; 
 
    },{}) 
 
    console.log(JSON.stringify(data)); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<form> 
 
    <input type="radio" name="imagem" value="no" /> 
 
    <input type="radio" name="imagem" value="yes">Imagem 
 
    <br /> 
 

 
    <input type="radio" name="som" value="no" /> 
 
    <input type="radio" name="som" value="yes">Som 
 
    <br /> 
 

 
    <input type="radio" name="animacao" value="no" /> 
 
    <input type="radio" name="animacao" value="yes">Animação 
 
    <br /> 
 
</form> 
 
<button>Send</button>