使用javascript将结果复选框保存到sqlite数据库中

时间:2014-01-14 13:10:55

标签: javascript sqlite cordova checkbox

我的应用中有一个表单,其中有几个复选框。我希望将已检查的复选框的结果(值)保存到数据库中的单独行中,如下所示。问题是,在保存时,只保存第一个(Ma),而在表单中检查其他的不是。当MA不是checkend什么都没发生...我使用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:

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);
}
}

1 个答案:

答案 0 :(得分:0)

我认为问题是因为你的for循环被分号终止:

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);
        }
    }
}

我也把事情分开,以便于阅读。