javascript
  • jquery
  • 2012-09-27 23 views 0 likes 
    0

    我有一個隱藏的輸入,其附加到一個表,這是以下:值爲1短每次

    var $fileImage = $("<form action='imageupload.php' method='post' enctype='multipart/form-data' target='upload_target_image' onsubmit='return imageClickHandler(this);' class='imageuploadform' > 
    <input type='hidden' class='numimage' name='numimage' value='" + GetFormImageCount() + "' /></form>"); 
    $image.append($fileImage); 
    

    下面是確定隱藏輸入的值的函數:

    function GetFormImageCount(){ 
        return $('.imageuploadform').length; 
    } 
    

    它是如何工作HOULD是形式1表第1行被附加,這意味着隱藏輸入的值應爲1問題是,它不這樣做,則該值爲0

    當表單2是應用程序結束它附加到表格第2行,這意味着隱藏輸入的值應該是2,但問題是這個輸入的值是1.

    所以我的問題是爲什麼是hudden輸入的值是1小於值應該是什麼?

    回答

    2

    對我來說,它的工作原理應該如此。你選擇所有.imageuploadform元素,有開頭沒有所以length爲0

    您可以設置屬性或設置值之前的元素追加時+1的值。

    var $fileImage = $("<form action='imageupload.php' method='post' enctype='multipart/form-data' target='upload_target_image' onsubmit='return imageClickHandler(this);' class='imageuploadform' > 
    <input type='hidden' class='numimage' name='numimage'/></form>"); 
    $image.append($fileImage); 
    setTimeout(function() { 
        $fileImage.attr('value', GetFormImageCount()); 
    }, 0); 
    

    setTimeout功能用於等待DOM的元素追加,要小心;)我會用+1解決方案去因爲它更容易。

    +0

    你是對的..計數是在dom更新之前完成的,因此它返回正確的值..你必須先附加表格,然後計算現有的表格,然後你實現你想要的 –

    相關問題