在提交表单

时间:2015-11-07 09:44:27

标签: javascript php jquery ajax

我有一个表单,其中有多个输入需要由用户输入,但在提交表单之前,我希望向用户显示他们的i / p将如何显示。

我的页面分为两部分,一部分包含表单,另一部分包含布局

<form class="form-horizontal"  enctype="multipart/form-data" role="form" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" method="POST">
    <div class="form-group">
        <label for="input01" class="col-sm-2 control-label">First Name</label>
            <div class="col-sm-4">
                <input type="text" class="form-control" name="firstname" id="input01">
            </div>
    </div>

    <div class="form-group">
        <label for="input01" class="col-sm-2 control-label">Last Name</label>
            <div class="col-sm-4">
                <input type="text" class="form-control" name="lastname" id="input02">
            </div>
    </div>

    <div class="form-group">
        <label for="input01" class="col-sm-2 control-label">Location</label>
            <div class="col-sm-4">
                <input type="text" class="form-control" name="location" id="input03">
            </div>
    </div>
</form>

现在我要显示上述数据的地方将是不同的div,这需要在提交按钮之前完成,例如:

我想要那个

when user types firstname, at the same instance it should be displayed under <div id="firstname"></div>,

when user types lastname , at the same instance it should be displayed under <div id="lastname "></div>,

when user types location, at the same instance it should be displayed under <div id="location"></div>,

目前我的代码只适用于单个输入

<input type="text" value="">
<p></p>

$( "input" )
  .keyup(function() {
    var value = $( this ).val();
    $( "p" ).text( value );
  })
  .keyup(); 

但我想要一些可以适用于任意数量输入的东西,如上例所述。任何人都可以帮助我吗

1 个答案:

答案 0 :(得分:0)

您可以为data添加特殊input - 属性,以便明确输入文本的放置位置。您可以按照自己的意愿调用它,前缀为data-,我们称之为data-view-id。然后,将此属性添加到input

 <input type="text" class="form-control" name="location" id="input01" data-view-id="#location">

下一步 - 修改你的js:

$( "input" )
  .keyup(function() {
      var value = $( this ).val(),
          dataViewId = $( this ).data( "view-id" );  // get your data-attribute value
      // use this value as a selector:
      $( dataViewId ).text( value );
  })
  .keyup();

更进一步 - 如果您要放置文本的div的ID与输入的name相同 - 那么您甚至不需要data - 属性:

$( "input" )
  .keyup(function() {
      var value = $( this ).val(),
          dataViewId = $( this ).attr( "name" );  // get your value using `name`
      // use this value as a selector:
      $( "#" + dataViewId ).text( value );
  })
  .keyup();

顺便说一句,id属性应该在页面上唯一。因此,拥有与您目前相同的id的多个元素是违法的。