我正在尝试为“未选中”设置默认值,但无效。我想要它。如果checked stores ='Yes',如果未选中stores ='No'。我不知道为什么不工作。数据库中的输入始终插入值为“是”。即使他们检查或取消选中。
<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>
答案 0 :(得分:1)
首先
vjson[$( this ).attr("id")] = $( this ).val();
由于您的复选框没有id
属性,因此迭代时该输入的值将设置为名为"undefined"
的属性。
您可以检查复选框是否已选中,是否使用复选框值,如果它不是通过使用ID选择器获取隐藏的输入
$( "input[type=checkbox]" ).each(function() {
vjson[this.name] = $(this).is(":checked") ? this.value : $( "#"+this.name ).val();
});
当然你可以使用单选按钮。如果您为它们指定相同的名称,则一次只能检查一个名称。然后只需使用:checked选择器获取正确的选择器并获取其值:
<input type="radio" name="som" value="no">
<input type="radio" name="som" value="yes">
var value = $("input[name=som]:checked").val();
或者您可以使用serialize()或serializeArray()让jQuery查找表单的所有值,并将它们放入名称/值对查询或值数组中。如果你必须将它作为JSON文本发送,那么只需将其转换为JSON。
演示
$("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));
});
&#13;
<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>
&#13;
答案 1 :(得分:-1)
我希望这个帮助你
<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>