表单的ajax填入问题

时间:2021-08-04 09:10:39
  • 又是表单 今天的表单是用事件委托从table里面获得eventId,用get请求从后台获得json数据填入表单中 第一个执行的比较顺利,但当再添加一个事件之后,修改(将数据填入表单)功能竟然失灵了,然后各种找原因,当把新添加的删除过后他又可以实现,但是当添加信息之后,用alert测试,他的字段获得正常,但是显示返回json的时候,无法执行,初步判断是get请求没有发送出去,至于原因还有待探索。
  • 第二个是将从json返回的checkbook的值用for循环输出以checkbook的形式显示到相应位置,首先是将json里对应的checkbook的值拿出来,此过程没有完成的原因是因为用数组方式将其输出时无法获得其值(只能获得其所有值都罗列出来)。
           //1.判断target.value是以modify开头的还是delete开头的
    //2.若以modify开头,则可以获得account
    //3. 处理modify的情形
    var node = target.parentNode.parentNode;
    strCode
    = target.value;
    var fdStart = strCode.indexOf("modify");
    var fbStart = strCode.indexOf("delete");
    var flStart = strCode.indexOf("result");
    var evId = node.childNodes[2].innerHTML;
    if (fdStart === 0) {

    var uem = new XMLHttpRequest();
    uem.onload
    = function () {
    if (uem.status === 200) {
    responseObject
    = JSON.parse(uem.responseText);
    }
    var newData = "";
    newData
    = "<form class=\"form-si\" method=\"get\">"
    + '<input type="text" class="input-block-level" value=' + responseObject.events[0].marathon_name+ '>'
    + '<input type="text" class="input-block-level" value=' + responseObject.events[0].eventId+ '>'
    + '<input type="text" class="input-block-level" value=' + responseObject.events[0].year+ '>'
    + '<p><label><input type="checkbox" name="allow" value = '+ responseObject.events[0].allow_photographer+' >'+responseObject.events[1].allow_photographer+'</label></p>'
    + '<input type="text" class="input-block-level" value=' + responseObject.events[0].bib_format + '>'
    + "<div align=\"center\"><p><a type=\"reset\" href=\"user_photographer_management_eg.html\" class=\"btn btn-large btn-primary\">取消</a> " +
    "<button type=\"submit\" class=\"btn btn-large btn-primary\" value='ensure_" + evId + "' >确定</button></p></div>"
    + "</form>";

    document.getElementById(
    "usemf").innerHTML = newData; alert(uem.responseText)
    };
    uem.open(
    "get", "../requests/myEvent/modifyExistingEventByEventCode.php?eventId="+evId+"", true);
    uem.send();
    }