是否有可能在收集整套innerHTML数据时获取数据?
这是我的JS代码的一部分。
var css = document.getElementById('SETinfo').innerHTML;
var num = parseInt(document.getElementById('stepNum_count').value);
var name = document.getElementById('step_name_'+id).value;
var desc = document.getElementById('step_desc_'+id).value;
css += "<div id='new_step_num_"+num+"'>";
css += "<input type='hidden' name='new_VW_step[]' value='"+id+"'>";
css += "<div class='step_contain'><div class='step'>";
css += "<div class='step_circle'>";
if(num < 10)
{
css += "<div class='step_num'>"+num+"</div>";
}
else
{
css += "<div class='step_num' style='left:8px;'>"+num+"</div>";
}
css += "</div>";
css += "<div class='step_name'>"+name+"</div>";
css += "<div class='step_divider'> </div>";
css += "<textarea class='step_detail' name='step_desc_[]'>"+desc+"</textarea>";
css += "</div> </div>";
css += "</div>";
document.getElementById('SETinfo').innerHTML = css;
num = num + 1;
一切正常,减去textarea,没有收集/选择。
这是一个JSfiddle,简化了我正在尝试做的事情。请注意,当您在textarea中输入文本时,单击该按钮时不会继续执行该操作。 http://jsfiddle.net/MepG5/
答案 0 :(得分:0)
它不起作用,因为您尝试将标记添加到 innerHTML。 var css = document.getElementById('SETinfo').innerHTML;
正常工作。使用entities:
var css = document.getElementById('SETinfo').innerHTML;
var num = parseInt(document.getElementById('stepNum_count').value);
var name = document.getElementById('step_name_'+id).value;
var desc = document.getElementById('step_desc_'+id).value;
css += "<div id='new_step_num_"+num+"'>";
css += "<input type='hidden' name='new_VW_step[]' value='"+id+"'>";
css += "<div class='step_contain'><div class='step'>";
css += "<div class='step_circle'>";
if(num < 10)
{
css += "<div class='step_num'>"+num+"</div>";
}
else
{
css += "<div class='step_num' style='left:8px;'>"+num+"</div>";
}
css += "</div>";
css += "<div class='step_name'>"+name+"</div>";
css += "<div class='step_divider'> </div>";
css += "<textarea class='step_detail' name='step_desc_[]'>"+desc+"</textarea>";
css += "</div> </div>";
css += "</div>";
document.getElementById('SETinfo').innerHTML = css;
num = num + 1;
答案 1 :(得分:0)
尝试
var textarea = $('textarea').val();
然后代替
css += "<textarea class='step_detail' name='step_desc_[]'>"+desc+"</textarea>";
写
css += textarea;
答案 2 :(得分:0)
好的,我想出了如何解决这个问题。创建每个文本区域时,我使用数字计数器分配唯一ID,然后计算到目前为止创建的行数,收集值,添加html,然后根据数字计数器重新填充每个文本区域中的数据。如果有人关心看到实际的代码,我可以更新JSfiddle。