好的,所以我得到了这张桌子。该表是通过后端的循环动态生成的。像这样:

<%int iterator = 0;
for(Iterator it = pd.getEntries().iterator();it.hasNext();){
   EntryData entry = (EntryData)it.next();
%>
<tr>
   <td><div id="oldvalue1_<%=iterator%>" class="editable_select"><%=entry.getIdentifiertype()%></div></td>
   <td><input type="hidden" id="newValue1_<%=iterator%>" value=""></td>
   <td></td>
   <td><div id="oldvalue2_<%=iterator%>" class="editable"" ><%=entry.getIdentifier()%></div>
   <input type="hidden" id="newValue2_<%=iterator%>" value=""></td>
   <td></td>
</tr>
<% iterator++;} %>


我要在此表上完成的操作是“就地编辑”,......我在jQuery中获得了此功能,该功能将oldvalue1_ *转换为选择框,如下所示:

$(window).load(function(){
var clickFunction = function(){
 var id = $(this).attr("id");
 var smallId = id.substr(10);//yeah, this is a temporary hack...
 var select = '<select name="select" id="select" onChange="THIS IS WHAT I NEED">';
 var options = ["ITEMNUMBER", "GROUP", "ALLITEMS"];
  for(var i = 0; i < options.length;i++)
    select += '<option value="'+options[i]+'">'+options[i]+'</option>';
    select += '</select>';
    $(this).html(select);
    $(this).unbind('click',clickFunction);
}
$("div.editable_select").bind('click',clickFunction);
});


我希望获得帮助的是使用onChange将新的selectet值传递给隐藏的值。我认为这里有正确的心态,我认为:onChange =“ $(”#newValue1 _“ + smallId).value($(this).val());”>
但是“ s”和“ s”的数量使我丧命,它无法正常工作。那么,我该怎么办?

对于其他表元素,我也有此功能:

$(document).ready(function(){
   $("div.editable").click(function(){
    var newInput = "<input type ='text' class='newInput' value=\""+$(this).text()+"\">";
    $(this).html(newInput);
    var id = $(this).attr("id");
    $("input.newInput").focus();
    $("input.newInput").keydown(function(event){
    if(event.which == 13){
       var lastDigit = id.substr(10);//Yeah...
       var valNumber = id.substr(8);//These are ugly, im working on it so don't hate on me  :P
       var value = $(this).val();
       $(this).parent().text(value);
       if(valNumber == 2){
        var changedtext = $("#editable2_"+lastdigit).val();//This right
        $("newValue2_"+lastDigit).val(changedtext);// here wont work
       }
    }
   });
});


将值传递到它们的隐藏字段时,我的问题也在这里。我用警报功能检查了我将值传递给var的原因,这只是我遗漏的最后一点。
我将感谢所有帮助,我在这里真的很需要它。并且,请记住,我在jQuery中总体上是n00b,因此诸如“您应该使用。[插入函数名称]”之类的答案将无济于事。

谢谢一群! (我不知道如何在代码中获得时髦的颜色,对不起)

最佳答案

不能只是最后一行中缺少#的问题?

$("#newValue2_"+lastDigit).val(changedtext);


代替

$("newValue2_"+lastDigit).val(changedtext);// here wont work

10-07 20:16