[英]Get value from textbox in dataTable
我有一個與DataTables和TableTools一起使用的動態創建的表-它工作得很好,除了我有一個輸入文本框,單擊按鈕時需要從中獲取值,但它只是給我html,例如<input size="3" type="text">
我創建了一個DataTables,嘗試重新創建問題,但是奇怪的是,返回的html給出了它不適合我的值(在html中,但至少我可以解析它)-仍然沒有如果您更改“數量”,則可以為您提供正確的值-參見此處http://live.datatables.net/bidetoku/1/
這是創建表的方式:
var tr = [];
var sorTable = document.getElementById('tblSORS');
for (var i = 0; i < sorresults.length; i++) {
tr[i] = document.createElement('tr');
var tdsorID = document.createElement('td');
var tdCode = document.createElement('td');
var tdDesc = document.createElement('td');
var tdClient = document.createElement('td');
var tdCreated = document.createElement('td');
var tdQuantity = document.createElement('td');
var inputQty = document.createElement('input');
inputQty.type = "text";
inputQty.value = "1";
inputQty.size = "3";
tdsorID.appendChild(document.createTextNode(sorresults[i].selectSingleNode('./itt_scheduleofratesid').nodeTypedValue));
tdCode.appendChild(document.createTextNode(sorresults[i].selectSingleNode('./itt_code').nodeTypedValue));
tdDesc.appendChild(document.createTextNode(sorresults[i].selectSingleNode('./itt_description').nodeTypedValue));
tdClient.appendChild(document.createTextNode(sorresults[i].selectSingleNode('./itt_clientcontractid.itt_description').nodeTypedValue));
tdQuantity.appendChild(inputQty);
tdCreated.appendChild(document.createTextNode(returnDate(sorresults[i].selectSingleNode('./createdon').nodeTypedValue)));
tr[i].appendChild(tdsorID);
tr[i].appendChild(tdCode);
tr[i].appendChild(tdDesc);
tr[i].appendChild(tdClient);
tr[i].appendChild(tdQuantity);
tr[i].appendChild(tdCreated);
sorTable.getElementsByTagName('tbody')[0].appendChild(tr[i]);
}
var sors = $('#tblSORS').DataTable({
"destroy": true,
"info": false,
"lengthChange": true,
dom: 'T<"clear">lfrtip',
tableTools: {
"sRowSelect": "multi",
"aButtons": ""
}
});
// hide scheduleofratesid column
sors.column(0).visible(false);
任何幫助都將是非常有用的,現在已經為此苦苦掙扎了一段時間。
編輯:這是一些代碼,似乎完成了我想要的一半,但沒有完全完成
function getQuantity(){
var table = $('#example').dataTable();
var data = table.$('input').serialize();
var oTT = $.fn.dataTable.TableTools.fnGetInstance('example');
var rows = oTT.fnGetSelectedData();
if (rows.length > 0) {
var selectedRows = oTT.fnGetSelectedIndexes();
selectedRows.forEach(function (i) {
alert(document.getElementById('example')
.rows[i]
.cells[0]
.firstChild
.value
);
});
}
}
這是一個可以幫助您的jQuery:
$(".test").each(function () {
//Example: add a click event for every item that has the class .test
$(this).click(function (){
//This will get you the value from the clicked element
valueOfElement = $(this).val();
});
});
但是,您可能必須為所有這些輸入添加一個通用類。
jQuery參考https://api.jquery.com/each/
嘗試下一個代碼:
<!doctype html>
<html lang="es">
<head>
<title>Stack Overflow</title>
<script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
<script>
$(document).ready(function () {
$("#simpleButton").click(function(){
$(".fields").each(function () {
value = $(this).val();
alert(value);
});
});
});
</script>
</head>
<body>
<div id="texts">
<input type="text" size="25" value="1" class="fields">
<br/>
<input type="text" size="25" value="2" class="fields">
<br/>
<input type="text" size="25" value="3" class="fields">
<br/>
<input type="text" size="25" value="4" class="fields">
<br/>
<input type="text" size="25" value="5" class="fields">
<br/>
<input type="button" value="Get the values" id="simpleButton">
</div>
</body></html>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.