0

感谢之前的所有帮助,我已经做到了这一点:我能够在表格中添加行并选择一个选项并显示一个文本输入。这是小提琴链接。以前我使用多选,但我现在改为单选,因为多选导致显示我的“输出类型”出现问题(也许你可以建议更好的方法;))

现在我面临另一个问题,即存储在变量中的值不会被新的输入值替换。因此,“输出编号”列将只显示输入的第一个数字。另一个奇怪的事情是,它只能从“区域输入”接收/更新输入,因为它被放置在 html div 的第一个位置。我试图将其他人更改为顶部,同样的事情也发生了。

var textInput = "";
$('.TextInput').empty();
textInput = $('.TextInput').val();

我试过.empty()了,但正如你所见,它不起作用。每个 div 都有不同的 ID。但是,如果我使用 ID,就像我之前测试过的一样,var textInput = $('#outputTextInput').val();我怎么能为其他人做同样的事情?我使用或||喜欢 var textInput = $('#outputTextInput').val() || $('#zoneTextInput').val();吗?

另外,我必须为“Arm”创建另一个函数,因为它使用的是复选框而不是文本输入吗?

更新:这是有效的,但不适用于我的程序:(( http://jsfiddle.net/yvonnezoe/MKfLU/1/

更新:我发现了这个问题!在这里查看我的问题:jQuery vs jQuery Mobile - 脚本顺序重要吗?

4

2 回答 2

1

尝试在您的代码中替换此行:

$('.TextInput').empty();
textInput =  $('.TextInput').val();

有了这个:

$('.TextInput').not($(this).prev('.TextInput')).val('');
textInput =  $(this).prev('.TextInput').val();

然后再试一次...

这是您的标记:

<input type="text" class="TextInput" id="zoneTextInput" value="">
<input type="submit" class="add" value="Add" />

现在,当您单击带有 class 的 Add 按钮时add,然后$(this)表示当前范围内的元素,而$(this).prev('.TextInput')表示带有 class 的元素之前的元素TextInput(这里是输入文本框)。因此,$(this).prev('.TextInput').val()将通过您单击的添加按钮为您提供当前文本框的值。然而,$('.TextInput').val()无论单击哪个添加按钮,都会为您提供第一个元素的值。

更多细节:prev()not()

于 2013-04-23T06:08:30.157 回答
0

textInput=$(this).prev().val(); 之所以有效,是因为在 click 事件中, this 指向按钮, prev 选择 dom 中的前一个元素(在本例中为 input 元素),然后 .val() 选择它的值。哪一部分还不行?

于 2013-04-23T08:17:54.237 回答