2017-11-11 10 views
0

私は同じページに2つのフォームを持っています.nは2つのフォームが同じ名前を持っています。 EX用 :jsの異なる関数で呼び出された2つ以上の同じ名前のPHP

<div class="form-group"> 
        <label for="supplier">Email</label> 
        <input type="text" name="email" class="form-control" id="email" placeholder="Email"> 
        <small id="pelem-error">Masukkan email supplier</small> 
       </div> 

<div class="form-group"> 
        <label for="customer">Email</label> 
        <input type="text" name="email" class="form-control" id="email" placeholder="Email"> 
        <small id="pelem-error">Masukkan email customer</small> 
       </div> 

この2入力の両方に同じ名前を "メール" を持っているが、私は別のテーブル jsのためにそれ以来、さまざまな機能でそれを呼びたい:

$("#form_supplier").on("submit",function(){ 
var email_supplier = $("#email").val(); 
および

$("#form_customer").on("submit",function(){ 
var email_customer= $("#email").val(); 

お客様からのメールがサプライヤーフォームで呼び出されました.jsのフォーム顧客のメールとも呼ばれる方法はありますか? plsヘルプ、thx!

+1

1つのページ内の複数の要素に同じIDを使用することはできません。 –

+0

他に方法はありませんか?なぜなら私は1ページで多くのモーダルを使うからです。 –

答えて

0

問題は、すべてのhtml要素IDが適切な予想動作が発生するためには一意でなければならないということです(そうでない場合は、DOMで最初に見つかったID、理由によっては最後のIDが必要になります)。あなたがidユニークなあなたの要素を作ることができない場合

、あなたは次のようにそれらを参照することができます。

$("#form_supplier").on("submit",function(){ 
    var email_supplier = $("input[name='email']",$(this)).val(); 
}); 
$("#form_customer").on("submit",function(){ 
    var email_customer = $("input[name='email']",$(this)).val(); 
}); 
:もう一つの方法は以下のようなものを(スコープとしてフォームを使用して)され

$("#form_supplier").on("submit",function(){ 
    var email_supplier = $("#form_supplier input[name='email']").val(); 
}); 
$("#form_customer").on("submit",function(){ 
    var email_customer = $("#form_customer input[name='email']").val(); 
}); 

しかし、すべての重複したidの値を削除する必要がありますので、DOMはきれいです。

+0

警告のための小さなテキストはどうですか? $( "#form_supplier small ['pelem-error']」) と $(「#form_pelanggan small ['pelem-error']」のように使用できますか? –

+0

はい。これがjqueryセレクタの働きです。名前のないアイテムの下にある類似アイテムを参照できる非常に幅広い方法があります。 – IncredibleHat

+0

jqueryセレクタの詳細:https://api.jquery.com/category/selectors/ – IncredibleHat

関連する問題