79

jqueryテンプレートを使用して、同じページに複数の要素を動的に生成しています。各要素は次のようになります

<div id ="DynamicValueAssignedHere">
    <div class="something">Hello world</div>
    <div class="formdiv">
        <form name="inpForm">
            <input type="text" name="FirstName" />
            <input type="submit" value="Submit" />
        </form>
    </div>
</div>

送信時にフォームを処理するためにJqueryを使用したいと思います。また、問題が発生した場合は、フォームの値を以前の値に戻したいと思います。私の質問は、Jqueryを使用して入力ボックスの値を取得するにはどうすればよいですか?たとえば、クラス「something」でdivの値を取得するには、次のようにします。

var something = $(#DynamicValueAssignedHere).children(".something").html();

同様の方法で、テキストボックスの値を取得できるようにしたいと思います。今、やってみました

var text = $(#DynamicValueAssignedHere).children(".formdiv").findnext('input[name="FirstName"]').val();

しかし、それは機能していないようです

4

8 に答える 8

152

あなたはvalue attributeその価値を得るために使用する必要があります

<input type="text" name="FirstName" value="First Name" />

試す -

var text = $('#DynamicValueAssignedHere').find('input[name="FirstName"]').val();
于 2012-07-25T16:36:31.967 に答える
56

それはあなたがしていることよりもはるかに簡単かもしれません。

HTML:

<input id="myField" type="text" name="email"/>

JavaScript:

// getting the value
var email = $("#myField").val();

// setting the value
$("#myField").val( "new value here" );
于 2012-07-25T16:36:04.357 に答える
10

フィールドhtmlを検索せずに、別のアプローチ:

var $form = $('#' + DynamicValueAssignedHere).find('form');
var formData = $form.serializeArray();
var myFieldName = 'FirstName';
var myFieldFilter = function (field) {
  return field.name == myFieldName;
}
var value = formData.filter(myFieldFilter)[0].value;
于 2015-11-16T14:42:09.557 に答える
3

$("form").submit(function(event) {
    
      var firstfield_value  = event.currentTarget[0].value;
     
      var secondfield_value = event.currentTarget[1].value; 
     
      alert(firstfield_value);
      alert(secondfield_value);
      event.preventDefault(); 
     });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form action="" method="post" >
<input type="text" name="field1" value="value1">
<input type="text" name="field2" value="value2">
</form>

于 2016-08-12T11:45:09.813 に答える
1

入力のIDがわかっている場合は、これを使用するだけで済みます。

var value = $("#inputID").val();
于 2012-07-25T16:38:50.950 に答える
1
var textValue = $("input[type=text]").val()

これにより、すべてのテキストボックスのすべての値が取得されます。子、firstchildなどのメソッドを使用して、磨きをかけることができます。フォーム$('form [name = form1] input [type = text]')のように、要素のターゲティングにIDを使用する方が簡単ですが、純粋に動的な場合は、すべてを取得できます。次に、入力値はJSでループします。

于 2012-07-25T16:40:03.777 に答える
0

あなたはこれらの行を試すことができます:

$("#DynamicValueAssignedHere .formdiv form").contents().find("input[name='FirstName']").prevObject[1].value
于 2019-01-25T07:22:43.680 に答える
0

次の方法で任意の入力フィールド値を取得できます $('input[fieldAttribute=value]').val()

ここに例があります

displayValue = () => {

  // you can get the value by name attribute like this
  
  console.log('value of firstname : ' + $('input[name=firstName]').val());
  
  // if there is the id as lastname
  
  console.log('value of lastname by id : ' + $('#lastName').val());
  
  // get value of carType from placeholder  
  console.log('value of carType from placeholder ' + $('input[placeholder=carType]').val());

}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="formdiv">
    <form name="inpForm">
        <input type="text" name="firstName" placeholder='first name'/>
        <input type="text" name="lastName" id='lastName' placeholder='last name'/>
        
        <input type="text" placeholder="carType" />
        <input type="button" value="display value" onclick='displayValue()'/>
        
    </form>
</div>

于 2019-01-31T09:14:19.270 に答える