使用javascript创建表单时,this.form返回null

时间:2014-12-18 13:50:13

标签: javascript php jquery html forms

我正在开发一个页面,允许用户查看我们当前所有的位置并进行编辑。这些位置存储在我的表中tr的表单元素中,其id为location_table。这部分效果很好,表单可以正确提交和POST。但是,我创建了一个添加新行的函数addLocationRow(),它创建了一个空白表单,以允许用户创建一个新位置。调用createLocation函数时似乎工作正常。使用正确的表格单元格,图像等创建新行。您可以输入下一个文本并更改任何选项。但是当发送到createLocation时,表单不会返回任何内容(函数与用于测试目的的编辑位置相同,因为我知道它适用于正常创建的表单)

function addLocationRow() {

$('#location_table > tbody:first').append('<tr><form name="updateForm" action="" method="get"><td>   </td><td><input type="text" name="location" value=""></td><td><select name="type"><option value="">None</option><option value="M">Kit</option><option value="B">Bulk</option><option value="MB">Kit/Bulk</option></select></td><td><input type="checkbox" name="mixed"></td><td><input type="checkbox" name="pickable"></td><td></td><td><button class="right" style="font-size:14px; border:none; background:none;" type="button" onClick="createLocation(this.form)"><img src="images/approved.gif"></button></td></form></tr>'); 

}

当我拉出源工具chrome时,我在createLocation()函数中停止了

  function createLocation(form){



    var formLocation = form.location.value;
    alert(formLocation);
    var formType = form.type.value;

    var formMixed = form.mixed.checked; 
    formMixed = (formMixed == true) ?  1 : 0;

    var formPickable = form.pickable.checked;
    formPickable = (formPickable == true) ?  1 : 0; 

    if(confirm("Are you sure you want to create " +  formLocation + "?")){

        //check syntax / characters

        $.post("createLocation.php", {location: formLocation, type: formType, mixed: formMixed, pickable: formPickable} ,function(data) {

            message = data["message"];
            alert(message);

        },"json");
    }
}

检查器打开(表单)它为空。由于某种原因,从不返回任何东西。此函数适用于未在addLocationRow函数中创建的表单。看到addLocationRow()的任何错误?

另外,我知道有很多方法可以做到这一点。我愚弄了以下但是无法弄清楚如何在tr中放置一个表单。

function addLocationRow() {
    var table = document.getElementById("location_table");
    var row = table.insertRow(1);
    var cellDelete = row.insertCell(0);
    var cellLocation = row.insertCell(1);
    var cellType = row.insertCell(2);
    var cellMixed = row.insertCell(3);
    var cellPickable = row.insertCell(4);
    var cellPrint = row.insertCell(5);
    var cellAddUpdate = row.insertCell(6);

    cellLocation.innerHTML = '<input type="text" name="location">';
    cellType.innerHTML = '<select name="type"><option value="">None</option><option value="M">Kit</option><option value="B">Bulk</option><option value="MB">Kit/Bulk</option></select>';
    cellMixed.innerHTML = '<input type="checkbox" name="mixed">';
    cellPickable.innerHTML = '<input type="checkbox" name="pickable">';
    cellAddUpdate.innerHTML = '<button class="right" style="font-size:14px; border:none; background:none;" type="button" onClick="createLocation(this.form)"><img src="images/approved.gif"></button>';
}

任何帮助表示赞赏。我的目标是能够将表单发送到createLocation函数,以便能够编辑/检查给定的信息等。

0 个答案:

没有答案