2016-08-12 11 views
0

私はserializeを使ってデータのテキスト文字列をHTML形式で吐き出しています。しかし、特定の条件下では、フォーム要素を文字列から除外したい。私はjqueryの 'not()'関数が正しいツールになると思っていましたが、問題を抱えています。jquery not()関数はserialize()関数と連携していません

ここに私のコードスニペットです...コンソールは "setType"を含む文字列を出力しています。私はnot($("setType"))と他の順列でないように変更しようとしました...運がない。

data = $('#setAtributesForm').not("#setType").serialize(); 
 
console.log(data);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js"></script> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js"></script> 
 

 
    <form id='setAtributesForm'> 
 
      <label for="setType">Select set type:</label> 
 
      <select id="setType" name="setType"> 
 
       <option value="EDI">EDI</option> 
 
       <option value="EWI">EWI</option> 
 
       <option value="EWI">Other</option> 
 
      </select> 
 
      <label for="containersQuantity">Number of containers:</label> 
 
      <input type="number" name="containersQuantity" id="containersQuantity" 
 
    \t \t \t \t \t \t min="1" max="40" value="1"/> 
 
    <!-- snip for brevity sake --> 
 
    \t </form>

答えて

1

$('#setAtributesForm')ので、フォーム全体がnotフィルタを無視してシリアル化されていない#setTypeれるフォームを選択します。

あなたは、その後、ターゲット要素を排除し、すべてのinputの要素を選択しようとシリアライズすることができます

$('button').click(function() { 
 
    var data = $('#setAtributesForm :input').not("#setType").serialize(); 
 
    console.log(data) 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<form id='setAtributesForm'> 
 
    <label for="setType">Select set type:</label> 
 
    <select id="setType" name="setType"> 
 
    <option value="EDI">EDI</option> 
 
    <option value="EWI">EWI</option> 
 
    <option value="EWI">Other</option> 
 
    </select> 
 
    <label for="containersQuantity">Number of containers:</label> 
 
    <input type="number" name="containersQuantity" id="containersQuantity" min="1" max="40" value="1" /> 
 
    <!-- snip for brevity sake --> 
 
</form> 
 
<button>Test</button>

関連する問題