我有一个 textarea 添加到 DOM 并在对查询数据库的 php 脚本成功调用 $.ajax 后填充。
使用查询结果生成一个表,并且在表中的每一行添加一个编辑和保存按钮,以便用户可以更改信息。
用户可以更改两个文本类型输入和一个文本区域(由于该列中的大量数据)。
两个文本输入工作正常(更改保存到服务器)。但我无法获得用户从 textarea 所做的更改。
表格行如下所示:
<table id="tblBranchCoverage" width="100%">
<thead>
<tr>
<th width="115px">County</th>
<th>State</td>
<th>Zip Codes</th>
</tr>
</thead>
<tbody>
<tr class="coverageRow" style="cursor: pointer;">
<td class="countyCovered" width="115px">
<label class="branchCountyCovered coverageDisplay" style="display: none;">Barrow</label>
<input type="text" class="edit editBox editCounty" style="width: 111px;" value="Barrow"><br>
<input type="submit" class="edit button submitCoverageEdits" style="" value="Save Changes"><br>
<input type="submit" class="edit button cancelCoverageEdits" style="" value="Cancel">
<input type="hidden" id="branchCoverageID" value="1">
</td>
<td class="stateCovered" width="30px">
<label class="branchStateCovered coverageDisplay" style="display: none;">GA</label>
<input type="text" class="edit editBox editState" style="width: 22px;" value="GA" max-length="2">
</td>
<td class="zipsCovered">
<label class="branchZipsCovered coverageDisplay" style="display: none;">30028, 30040, 30041</label>
<textarea class="edit editBox editZips" style="resize: none; overflow: hidden;" cols="100">30028, 30040, 30041</textarea>
</td>
</tr>
</tbody>
</table>
我正在使用这个 jQuery 获取输入的值:
$('#tblBranchCoverage').on('click', 'tr input.submitCoverageEdits', function() {
var $tr = $(this).parent().parent(),
county = $tr.find('input.editCounty').val(),
state = $tr.find('input.editState').val(),
zips = $tr.find('textarea.editZips').text();
...
});
在控制台中检查 textarea 的内容:
console.log('zips: ' + zips);
无论用户进行任何更改,始终只显示填充的文本。我还在 textarea 上尝试了 .val() 和 .html() ,但都无济于事。
谁能告诉我为什么这仅适用于 textarea 以及如何解决?
谢谢。