0

私の体にはこのような構造がありますJSP

<c:forEach var="test" value="${test}">
<table>
    <tr>
        <td><textarea class="no-resize" id="comments"></textarea></td>
        <td><select class="select"> ... </select> </td>
        <td><textarea class="no-resize" id="reason"></textarea></td>
        <td><textarea class="no-resize" id="description"></textarea></td>
    </tr>
</table>
</c:forEach>

保存ボタン:

<button class="btn " type="submit" form="controller" name="save" value="save" id="save" onclick="return onSave()">Save</button>

各行は基本的に空であり、私がやりたいことは、保存ボタンがクリックされたときにのみ送信することです:

  1. 変更された行はすべてのフィールドを埋める必要があります
  2. または、すべてのフィールドが空のままになります

可能であればjQueryを使用してください。

私がこれまでに試したことは次のとおりです。

         var isFilled = true;
         $(".no-resize[id='comments']").each(function(){
             $(this).change(function(){
                if(!$(this).val() == ''){
                    setTextBox(false);
                }else{
                    setTextBox(true);
                }
             });
         });
         function setTextBox(isEmpty)
         {
             isFilled = isEmpty;
         }

         function onSave()
         {
             return isFilled; 
         }; 

上記のコードは、 が変更されているかどうかをチェックtextareaid comments、空の場合は を に設定isFilledするfalseため、送信は失敗します。私が行ったコードの問題は、最後に変更されたもののみをチェックするように2つ変更textareaしたときです。id of commentstextarea

これを解決する方法はありますか?

4

1 に答える 1