2015-09-12 46 views
1

我試圖使用jQuery .append(data)成功地使用它來改變輸入值的附加數據爲:.val(append(data))但不是而我可以成功地將值更改爲字符串.val("Hello"),而不是更改值以追加數據。 所以如果任何人都可以幫忙請.. ..! 下面是完整的代碼太爲:無法使用jquery .append(數據)作爲.val(append(數據))

<script type="text/javascript"> 
    $(document).ready(function (e) { 
     $('.upload').on('submit', (function (e) { 
      e.preventDefault(); 
      var formData = new FormData(this); 

      $.ajax({ 
       type: 'POST', 
       url: $(this).attr('action'), 
       data: formData, 
       cache: false, 
       contentType: false, 
       processData: false, 
       success: function (data) { 
        $(".no_image").css("display", "none"), 
        $(".show_image").css("display", "block"), 
        $(".profile_photo").val(append(data)), 
        $(".image").attr("src", "client_images/" + append(data)); 
       }, 
       error: function (data) { 
        console.log("error"); 
        console.log(data); 
       } 
      }); 
     })); 

     $(".inputFile").on("change", function() { 
      $(".upload").submit(); 
     }); 
    }); 
</script> 

雖然形式的代碼是:

<div class="bgColor"> 
    <form id="uploadForm" class="upload" action="upload_image.php" method="post"> 
     <div id="targetLayer" class="target" style="width: 28%;height: 0%;"> 
      <div class="no_image" style="display:block;">No Image</div> 
      <div class="show_image" style="display:none;"> 
       <img class="image" src="" width="100px" height="100px"> 
      </div> 
     </div> 
     <div id="uploadFormLayer"> 
      <label>Upload Image File:</label> 
      <br/> 
      <input name="userImage" id="userImage" type="file" class="inputFile" /> 
    </form> 
    </div> 
</div> 
<fieldset> 
    <input name="profile_photo" class="profile_photo" type="text"/> 
</fieldset> 

回答

2

沒有全球append功能,append是一個jQuery方法,即你只能把它在一個jQuery目的。如果你想爲一個字符串追加到輸入的電流值,你可以使用val的回調函數:爲jQuery的集合中的每個元素執行一次

// ... 
$(".profile_photo").val(function(index, currentValue) { 
    return currentValue + data; 
}); 
// there is no need to call a non-existent `append` function 
// for string concatenation, `+` does the trick 
$(".image").attr("src", "client_images/" + data); 

val方法的回調函數。回調函數的第一個參數是當前迭代的index。第二個參數是元素的當前值。在上面的代碼片段中,input的當前值與data變量連接。該函數的返回值用於設置元素的值。

+0

你能澄清一點點..我是新來的這些東西..我應該用'currentValue'和'currentValue +數據'來替換什麼? –

+0

太棒了...謝謝它的工作..! –

+0

@UmarShah歡迎您! – undefined