在依赖于复选框的表单中添加/删除输入

时间:2013-03-15 22:02:28

标签: jquery html forms input checkbox

我有一个带有3个复选框的表单,每个复选框下都有一个文本区域。

HTML:

<form>
<input class="checkbox" id="checkboxsection1" type="checkbox" name="section1">Section 1<br/>
<textarea name="section1textarea"> Sample </textarea><br/>

 <input class="checkbox" id="checkboxsection2" type="checkbox" name="section2">Section 2<br/>
     <textarea name="section2textarea"> Sample </textarea><br/>

 <input class="checkbox" id="checkboxsection3" type="checkbox" name="section3">Section 3<br/>
     <textarea name="section3textarea"> Sample </textarea><br/>

 <input type="submit" class="submit" value="Submit"/>

JSfiddle

我现在拥有代码的方式是当取消选中该复选框时隐藏textarea,并在使用jqueryUI切换功能选中复选框时可见。

我正在使用的代码比上面更复杂(我已经为了这个问题简化了它),但是在我的情况下我无法删除textarea,因为我有canvas元素和javascript调用它并依赖它输入。如果需要更多信息,我将为上面的代码增加更多的复杂性。

提交表格后,所有内容都会传递到购物车。我想知道是否有任何方法阻止textarea被传递到购物车,如果上面的复选框上面的textarea仍未选中,而实际上没有删除textarea。

1 个答案:

答案 0 :(得分:2)

根据this question's accepted answer,禁用字段不会被发布。

您可以通过调用:

来禁用textarea
$('textarea[name=section1textarea]').prop('disabled', true);

通过调用:

重新启用它
$('textarea[name=section1textarea]').prop('disabled', false);

<强>更新

我只是想补充一下,复选框值会在选中时发布,所以我会在未选中相应的复选框时忽略已发布的textarea值,而不用打扰禁用textareas。或者两者都是安全的。