在不使用<input type =“text”/>的情况下创建输入文本框

时间:2011-11-13 13:47:01

标签: javascript jquery html css forms

我想创建一个不需要<input type="text">表单元素的输入文本框。用户仍然可以在此文本框中键入文本,仍然可以使用Javascript / jQuery检索值。这样做的原因是因为这个文本框将采用一种形式,一旦提交,所有表单输入值将被发送到服务器端进行处理,并且有这个文本框我不希望它的值自动发送到服务器端

问题:在不依赖HTML表单元素input的情况下创建此类文本框的最佳方法是什么?

6 个答案:

答案 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> 

http://html5demos.com/contenteditable

答案 2 :(得分:1)

如果你通过jQuery创建动态<input type="text"> - 它将回发它的值。

如果将其值回发,您关心什么?只是不要在服务器端对它们做任何事情。

或,

在提交之前 - 将类型从输入更改为标签。 (+保存值)

或,

如果您将输入外部输入FORM元素 - 它不会提交。

答案 3 :(得分:1)

您可以使用textarea代替input。然后用css应用样式。您也可以使用输入标记,只需将其保留在<form></form>之外,然后就不会将其发送到服务器。

答案 4 :(得分:1)

只需创建输入,不要给它nameid

答案 5 :(得分:1)

$("#form").bind('submit', function() {
  $(this).children('input[name=excludethisfield]').attr('disabled', true);
});

我知道这不是你提出的具体问题,但可能是最简单的方法。