JQuery获取点击事件中输入框的值
JQuery Getting Value of Input Box in On Click Event
关于这个主题还有很多其他线程,但没有一个能解决我的问题。我正试图从刚刚插入的输入字段中获取值。我使用以下javascript行插入我的输入框:
processName.innerHTML = '<input type="text" id="ProcessNameChange" value="' + oldName + '" >';`
然后我尝试使用访问它
var newName = $(this).closest("#ProcessNameChange").val();
这两者都封装在一个事件中,即按钮单击事件。如果你喜欢的话,下面是整个函数。此外,如果你有更好的方法来编码我写的任何东西,请随时分享。
$('.Edit').click(function () {
if ($(this).attr("id") != "submitUpdate") {
$(this).attr("id", "submitUpdate");
$(this).text("Submit");
var closestTR = $(this).closest("tr");
var processName = closestTR.children()[2];
var processDescription = closestTR.children()[3];
var processID = closestTR.children()[4];
var oldName = processName.innerHTML;
var oldDesc = processDescription.innerHTML;
processName.innerHTML = '<input type="text" id="ProcessNameChange" value="' + oldName + '" >';
processDescription.innerHTML = '<input type="text" id="ProcessDescChange" value="' + oldDesc + '" > ';
submitButtonClick();
} else {
var newName = $(this).closest("#ProcessNameChange").val();
var newDesc = $(this).closest("#ProcessDescChange").val();
var processID = $(this).closest("tr").children()[4];
}
-->与评论相关:输入框的HTML始终保持如下所示:它都是通过中继器生成的,而不是用javascript修改的。
<tr>
<td class="grid-main-detail"></td>
<td>
<input id="ProcessNameChange" type="text" value="PNameOld">
</td>
<td>
<input id="ProcessDescChange" type="text" value="PDescOld">
</td>
<td>
<td>3547556300824952452</td>
<td>Me </td>
<td>7/19/2013 2:32:48 PM</td>
</tr>
谢谢!
您错误地使用了最近的选择器
看看这个小提琴
http://jsfiddle.net/Td6Wx/3/
<div class="test"></div>
<a href="#" class="test2">asdasdas</a>
closest()(http://api.jquery.com/closest)在您的情况下,通过它的ANCESTORS向上传播。Edit不是输入的子级,所以它当然不起作用。如果您发布您的html结构,我们可能会提供正确的解决方案
一个问题:为什么要访问这样的输入值
var newName = $(this).closest("#ProcessNameChange").val();
而不是:
var newName = $("#ProcessNameChange").val();
由于该项是唯一的(由于其id
属性),我认为不需要使用.closest()
来获取它(及其值)。
您真的需要以这种方式选择输入字段吗?
我建议去掉innerHTML
,专注于创建元素的jQuery方法,如.append()
和$()
。此外,我想你正在寻找td
tr的孩子。
var oldName = processName.text();
var oldDesc = processDescription.text();
processName.append($('<input type="text" id="ProcessNameChange" value="' + oldName + '" >'));
processDescription.append($('<input type="text" id="ProcessDescChange" value="' + oldDesc + '" > '));
希望这能有所帮助,
R。
相关文章:
- 如何在多表单的输入框中使用输入事件javascript
- 鼠标输入事件上的jQuery延迟出现问题
- 为什么ng模式获胜't对来自非用户输入事件的更改进行正确验证
- 鼠标输入事件未触发
- 为什么“输入”事件不会在文件输入上触发,但“更改”事件会触发
- 范围滑块输入事件在 IE 10 中未触发
- 使用 jQuery 触发输入事件
- 输入事件侦听器更新自按钮
- FF 鼠标离开/鼠标输入事件
- 如何在没有 jQuery 的情况下以编程方式触发“输入”事件
- 如何从“输入”事件中获取最后一件事输入
- jQuery 屏幕键盘的输入事件
- jQuery:单击时,防止鼠标输入事件
- “输入”事件的多个事件侦听器
- 延迟鼠标输入事件,如果鼠标在元素内引发事件
- 正在检测换档键输入事件
- 调用了两次HTML输入事件
- 更改占位符会触发IE 10中的输入事件
- jQuery animate无法在输入事件侦听器中工作
- 使用JavaScript设置输入事件