使用javascript将表单中签入的结果复选框保存到sqlite数据库中 [英] Save result checkboxes checked in form into sqlite database with javascript

查看:68
本文介绍了使用javascript将表单中签入的结果复选框保存到sqlite数据库中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的应用程序中有一个带有多个复选框的表单。我希望将选中的复选框的结果(值)保存到数据库的单独行中,请参见下文。问题在于,在保存时,仅第一个(Ma)会被保存,而其余的(即使是)都将被检查。当MA不是checkend时,什么也没有发生...我使用JqueryMobile / JavaScript / PhoneGap构建

I have a form in my app with several checkboxen. I want the result(value) of the checked checkedboxes saved into separate rows in the database, see below. The problem is that when saving, only the first one (Ma) is saved and the other ones not eventhough the are checked in the form. When MA is not checkend nothing happens at all... I use JqueryMobile/JavaScript/PhoneGap Build

表格:

<form name="test"> 
<label class="label_check" id="l1" for="ch1">Ma
<input class="custom" type="checkbox" name="checkgroup" id="ch1" value="Ma" />
</label>
<label class="label_check" id="l2" for="ch2">Di
<input class="custom" type="checkbox" name="checkgroup" id="ch2" value="Di" checked />
</label>
<label class="label_check" id="l3" for="ch3">Woe
<input class="custom" type="checkbox" name="checkgroup" id="ch3" value="Woe" />
</label>
<label class="label_check" id="l4" for="ch4">Do
<input class="custom" type="checkbox" name="checkgroup" id="ch4" value="Do" />
</label>
<label class="label_check" id="l5" for="ch5">Vr
<input class="custom" type="checkbox" name="checkgroup" id="ch5" value="Vr" checked />
</label>
<label class="label_check" id="l6" for="ch6">Za
<input class="custom" type="checkbox" name="checkgroup" id="ch6" value="Za" />
</label>
<label class="label_check" id="l7" for="ch7">Zo
<input class="custom" type="checkbox" name="checkgroup" id="ch7" value="Zo" />
</label>
</form>
</p>
<p>
<input type="button" name="saveData" id="btn1" value="Save" onclick="saveRecordSafety();"/>

JavaScript:

Javascript:

function saveRecordSafety() {
//Write the record to the database
theDBbeter.transaction(insertRecordSafety, onTxErrorB, onTxSuccessB);
}

function insertRecordSafety(txb) {
var elementen = document.getElementsByName ("checkgroup");
var tmpChoise;
for (var r= 0; r < elementen.lenght; r++);
if (elementen[r].checked) {
tmpChoise = elementen[r].value; 
alert(tmpChoise);
var sqlStrB = 'INSERT INTO testSafetyBeter (beter) VALUES (?)';
txb.executeSql(sqlStrB, [tmpChoise], onSqlSuccess, onSqlError);
}
}


推荐答案

I认为问题是因为您的for循环被分号终止了:

I think the problem is because of your for loop being terminated by a semicolon:

for (var r= 0; r < elementen.lenght; r++);

尝试一下:

function insertRecordSafety(txb) {

var elementen = document.getElementsByName ("checkgroup");
var tmpChoise;

    for (var r= 0; r < elementen.length; r++)
    {
        if (elementen[r].checked) 
        {
            tmpChoise = elementen[r].value; 
            alert(tmpChoise);
            var sqlStrB = 'INSERT INTO testSafetyBeter (beter) VALUES (?)';
            txb.executeSql(sqlStrB, [tmpChoise], onSqlSuccess, onSqlError);
        }
    }
}

我也把东西隔开使其更易于阅读。

I've also spaced things out to make it easier to read.

这篇关于使用javascript将表单中签入的结果复选框保存到sqlite数据库中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆