복붙노트

[JQUERY] 제출하기 전에 양식에 추가 필드를 추가하는 방법은 무엇입니까?

JQUERY

제출하기 전에 양식에 추가 필드를 추가하는 방법은 무엇입니까?

해결법


  1. 1.예. 일부 숨겨진 params를 사용해보십시오.

    예. 일부 숨겨진 params를 사용해보십시오.

      $("#form").submit( function(eventObj) {
          $("<input />").attr("type", "hidden")
              .attr("name", "something")
              .attr("value", "something")
              .appendTo("#form");
          return true;
      });
    

  2. 2.이 시도:

    이 시도:

    $('#form').submit(function(eventObj) {
        $(this).append('<input type="hidden" name="field_name" value="value" /> ');
        return true;
    });
    

  3. 3.

    $('#form').append('<input type="text" value="'+yourValue+'" />');
    

  4. 4.숨겨진 입력을 보내는 데 필요한 값을 추가 할 수 있습니다.

    숨겨진 입력을 보내는 데 필요한 값을 추가 할 수 있습니다.

    $('#form').submit(function(eventObj) {
        $(this).append('<input type="hidden" name="someName" value="someValue">');
        return true;
    });
    

  5. 5.이 작품 :

    이 작품 :

    var form = $(this).closest('form');
    
    form = form.serializeArray();
    
    form = form.concat([
        {name: "customer_id", value: window.username},
        {name: "post_action", value: "Update Information"}
    ]);
    
    $.post('/change-user-details', form, function(d) {
        if (d.error) {
            alert("There was a problem updating your user details")
        } 
    });
    

  6. 6.몇 가지에 유용 할 수 있습니다.

    몇 가지에 유용 할 수 있습니다.

    (객체를 사용하여 폼에 데이터를 추가 할 수있는 함수) [순수한 JS]

    (양식은 DOM el이며 jQuery 객체가 아닌 [JQRYOBJ.GET (0) 필요하다))

    function addDataToForm(form, data) {
        if(typeof form === 'string') {
            if(form[0] === '#') form = form.slice(1);
            form = document.getElementById(form);
        }
    
        var keys = Object.keys(data);
        var name;
        var value;
        var input;
    
        for (var i = 0; i < keys.length; i++) {
            name = keys[i];
            // removing the inputs with the name if already exists [overide]
            // console.log(form);
            Array.prototype.forEach.call(form.elements, function (inpt) {
                 if(inpt.name === name) {
                     inpt.parentNode.removeChild(inpt);
                 }
            });
    
            value = data[name];
            input = document.createElement('input');
            input.setAttribute('name', name);
            input.setAttribute('value', value);
            input.setAttribute('type', 'hidden');
    
            form.appendChild(input);
        }
    
        return form;
    }
    
    addDataToForm(form, {
        'uri': window.location.href,
         'kpi_val': 150,
         //...
    });
    

    당신도 그렇게 사용할 수 있습니다

    var form = addDataToForm('myFormId', {
        'uri': window.location.href,
         'kpi_val': 150,
         //...
    });
    

    당신이 너무 좋아하는 경우 #을 추가 할 수 있습니다 ( "#MYFormID").

  7. from https://stackoverflow.com/questions/17809056/how-to-add-additional-fields-to-form-before-submit by cc-by-sa and MIT license