我想创建一个不需要<input type="text">
表单元素的输入文本框。用户仍然可以在此文本框中键入文本,仍然可以使用Javascript / jQuery检索值。这样做的原因是因为这个文本框将采用一种形式,一旦提交,所有表单输入值将被发送到服务器端进行处理,并且有这个文本框我不希望它的值自动发送到服务器端
问题:在不依赖HTML表单元素input
的情况下创建此类文本框的最佳方法是什么?
答案 0 :(得分:9)
只是不要为<input type="text">
标记提供name
属性,也不会提交。这是一个例子:
<input type="text" id="myinput" value="you will not see this submitted" />
答案 1 :(得分:5)
你也可以使用一个可信的div。
来自MDN:
<!DOCTYPE html>
<html>
<body>
<div contenteditable="true">
This text can be edited by the user.
</div>
</body>
</html>
答案 2 :(得分:1)
如果你通过jQuery创建动态<input type="text">
- 它将回发它的值。
如果将其值回发,您关心什么?只是不要在服务器端对它们做任何事情。
或,
在提交之前 - 将类型从输入更改为标签。 (+保存值)
或,
如果您将输入外部输入FORM元素 - 它不会提交。
答案 3 :(得分:1)
您可以使用textarea
代替input
。然后用css应用样式。您也可以使用输入标记,只需将其保留在<form></form>
之外,然后就不会将其发送到服务器。
答案 4 :(得分:1)
只需创建输入,不要给它name
或id
。
答案 5 :(得分:1)
$("#form").bind('submit', function() {
$(this).children('input[name=excludethisfield]').attr('disabled', true);
});
我知道这不是你提出的具体问题,但可能是最简单的方法。