我有一个表格,其中包含用户点击链接时需要替换的表单元素。我们的想法是,如果他们点击按钮,字段会自动填入,然后字段变成html p元素,因为我不希望用户在自动填写后能够编辑这些字段。还有其他字段需要仍然填写的字段。
所以我需要的是当用户点击链接时,4个标记被替换为4个标记,其中包含文本。这似乎不适用于trs。所以我现在在包含输入字段的td上尝试它:
$('#use_patient_field').click(function(e){
e.preventDefault();
$('#patientForm_f_name').html('blah');
return false;
});
我也尝试覆盖输入字段,也没有任何反应。我需要表仍然存在,但替换输入和选择标签。
答案 0 :(得分:2)
据我了解您的问题,您希望在单击表格行时动态更改它们的内容。如果您的表格如下:
<table id="grid">
<tr><td>Row 1</td></tr>
<tr><td>Row 2</td></tr>
</table>
然后,当您单击它们时,以下实时事件处理程序将更改行中的单元格:
$('#grid tr').live('click', function(event) {
var row = $(event.target);
row.html('<td><b>some text</b><td>');
event.preventDefault();
})
答案 1 :(得分:1)
我找到了我想要的东西。您可以将输入字段设置为只读,这意味着我不必用p元素替换表单字段。
这是代码,以防任何未来的perosn需要它:
$('.patient input').attr('readonly','true');
答案 2 :(得分:0)
你不能只在表格中将tr
- s替换为p-s。我建议,从表格单元格中提取所有内容(td
- s),并用p
- s包装它们,将它们放在表格之后,最后删除表格。
答案 3 :(得分:0)
Jquery的.html
方法在匹配的元素中添加HTML。您给出的示例将为您提供:
<input id="patientForm_f_name">blah</input>
你想要的是替换匹配的元素。您可以使用.replaceWith
方法执行此操作。
尝试:
$('#patientForm_f_name').replaceWith('blah');
答案 4 :(得分:0)
如果您想要替换所有trs,请使用
$( 'TR')HTML( '');
这将删除tr中的所有html。