Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 对文本框的更改不会反映在网页上_Java_Javascript_Textbox - Fatal编程技术网

Java 对文本框的更改不会反映在网页上

Java 对文本框的更改不会反映在网页上,java,javascript,textbox,Java,Javascript,Textbox,当我按下按钮getDetails时,我需要填写我的网页字段。 我提供注册id作为输入,在此基础上向数据库发出请求。我收到的响应需要显示在各个字段中 我得到了所需的响应,并正确地处理了响应(使用google chrome选项inspect元素验证)。我还尝试使用Inspect元素调试jsp代码,发现所有response的值都设置正确,但当控件传递所引发请求的回调方法时,我的网页会刷新,URL会更改为 http://localhost:8080/ReportFetcher/FirstJSP.jsp?

当我按下按钮
getDetails
时,我需要填写我的网页字段。 我提供
注册id
作为输入,在此基础上向数据库发出请求。我收到的响应需要显示在各个字段中

我得到了所需的响应,并正确地处理了响应(使用google chrome选项
inspect元素验证)。我还尝试使用Inspect元素调试jsp代码,发现所有response的值都设置正确,但当控件传递所引发请求的回调方法时,我的网页会刷新,URL会更改为
http://localhost:8080/ReportFetcher/FirstJSP.jsp?regid=2®Idsubmitbutton=getDetails&Class=0

而我希望它是
http://localhost:8080/ReportFetcher/FirstJSP.jsp?

因为此页面也有动态下拉列表,在其中选择一个下拉列表后,将引发请求,处理响应,并填充其他下拉列表

这个场景运行良好,所以我无法理解为什么在第一种情况下页面url会发生变化。 还需要注意的是,在第一种情况下,当将页面置于调试状态时,我可以看到在网页的各个元素中设置的值,这意味着(在我看来)先设置值,然后刷新页面,这会导致删除以前设置的数据

以下是jsp文件中的一段代码:

function funcOnChange(reqElement) {
        var valueSelected = null;
        if (reqElement.name == "Class") {
            valueSelected = reqElement.value;
            document.detail.regid.disabled = true;
        } else if (reqElement.name == "regIdsubmitbutton") {
            valueSelected = "R" + document.detail.regid.value;
        }

        document.detail.Section.options.length = 0;

        if (reqElement.name == "Class" && valueSelected == "None") {
            document.detail.Section.disabled = true;
            return;
        }
        var xhr = new XMLHttpRequest();

        xhr.onreadystatechange = function() {
            // Check to see if this state change was "request complete", and
            // there was no server error (404 Not Found, 500 Server Error, etc)
            if (xhr.readyState == 4 && xhr.status == 200) {
                var substring = xhr.responseText;
                if (reqElement.name == "regIdsubmitbutton") {
                    parseResponse(substring);
                } else {
                    document.detail.Section.disabled = false;
                    // loop to update the drop down 
                    var pos = doActivateSection(substring);
                    generateTable(substring, pos);
                }
            }
            if (xhr.readyState == 404) {
                alert("404 error");
            }
            if (xhr.readyState == 500) {
                alert("500 error");
            }

        }

function parseResponse(response) {
    var name = 0, standard = 1, section = 2, rollno = 3, subject = 4, total_type = 5;

    var pos;
    var result = [];
    var data = [];
    var type = 0;
    while (type < total_type) {
        switch (type) {
        case name:
            result = readSegment(response, -1);
            break;

        case standard:
            result = readSegment(response, pos);
            break;

        case section:
            result = readSegment(response, pos);
            break;

        case rollno:
            result = readSegment(response, pos);
            break;

        case subject:
            result = readSegment(response, pos);
            break;

        default:
            break;
        }
        data = result[0];
        pos = result[1];
        type++;
        updateFormElement((type - 1), data);
    }
}

function updateFormElement(type, data) {
    var element;
    switch (type) {
    case 0:
        element = document.getElementById("studentName");
        element.value = data[0];
        element.disabled = true;
        break;

    case 1:
        document.detail.Class.options[0] = new Option(data[0], data[0], 0,
                0);
        document.detail.Class.disabled = true;

        break;

    case 2:
        document.detail.Section.options[0] = new Option(data[0], data[0],
                0, 0);
        document.detail.Section.disabled = true;
        break;

    case 3:
        element = document.getElementById("RollNo");
        element.value = data[0];
        element.disabled = true;

        break;

    case 4:
        break;

    default:
        break;
    }

}

function readSegment(res, pos) {
    var value = [];
    var result = [];
    var valueindex = 0;
    for ( var index = pos + 1; index < res.length; index++) {
        pos = index;
        if (res[index] == '|') {
            break;
        } else if (res[index] == ',') {
            valueindex++;
        } else {
            if (value[valueindex] == null
                    || value[valueindex] == 'undefined') {
                value[valueindex] = "";
            }
            value[valueindex] = value[valueindex] + res[index];
        }
    }
    result.push(value);
    result.push(pos);
    return result;
}


<form name="detail" method="post">
    <p align="center">Either Enter :</p>
    <span id="01120"><b>Registration id:</b></span> <input type="text"
        name="regid"> <span id="01119"></span> <input type="submit"
        value="getDetails" onclick="funcOnChange(this)"
        name="regIdsubmitbutton"> <br>
函数功能更改(reqElement){
var valueSelected=null;
if(reqElement.name==“类”){
valueSelected=reqElement.value;
document.detail.regid.disabled=true;
}else if(reqElement.name==“regIdsubmitbutton”){
valueSelected=“R”+document.detail.regid.value;
}
document.detail.Section.options.length=0;
如果(reqElement.name==“类”&&valueSelected==“无”){
document.detail.Section.disabled=true;
返回;
}
var xhr=new XMLHttpRequest();
xhr.onreadystatechange=函数(){
//检查此状态更改是否为“请求完成”,以及
//没有服务器错误(404未找到、500服务器错误等)
如果(xhr.readyState==4&&xhr.status==200){
var substring=xhr.responseText;
if(reqElement.name==“regIdsubmitbutton”){
解析响应(子串);
}否则{
document.detail.Section.disabled=false;
//循环以更新下拉列表
var pos=doActivateSection(子字符串);
generateTable(子字符串,pos);
}
}
if(xhr.readyState==404){
警报(“404错误”);
}
如果(xhr.readyState==500){
警报(“500错误”);
}
}
函数parseResponse(响应){
变量名称=0,标准=1,节=2,卷号=3,主题=4,总类型=5;
var-pos;
var结果=[];
var数据=[];
var类型=0;
while(类型<总类型){
开关(类型){
案例名称:
结果=读取段(响应,-1);
打破
案例标准:
结果=读取段(响应,位置);
打破
案例部分:
结果=读取段(响应,位置);
打破
案件编号:
结果=读取段(响应,位置);
打破
个案主题:
结果=读取段(响应,位置);
打破
违约:
打破
}
数据=结果[0];
pos=结果[1];
类型++;
updateFormElement((类型-1),数据);
}
}
函数updateFormElement(类型、数据){
var元素;
开关(类型){
案例0:
element=document.getElementById(“studentName”);
element.value=数据[0];
element.disabled=true;
打破
案例1:
document.detail.Class.options[0]=新选项(数据[0],数据[0],0,
0);
document.detail.Class.disabled=true;
打破
案例2:
document.detail.Section.options[0]=新选项(数据[0],数据[0],
0, 0);
document.detail.Section.disabled=true;
打破
案例3:
元素=document.getElementById(“RollNo”);
element.value=数据[0];
element.disabled=true;
打破
案例4:
打破
违约:
打破
}
}
功能读取段(res、pos){
var值=[];
var结果=[];
var valueindex=0;
对于(var指数=位置+1;指数输入:

注册id:
在getDetail按钮的下拉菜单
onChange
onClick
上调用
funcOnchange()
。 在
parseResponse()
响应中,解析文本,并在各种文本框中设置文本。
调试
parseResponse()
时正确完成,但在该页面刷新之后。

提交按钮会在内部刷新页面,因此您需要更改按钮的类型,希望这样可以解决问题

<input type="button"
        value="getDetails" onclick="funcOnChange(this)"
        name="regIdsubmitbutton">


好的,您必须向我们展示完整的函数funcOnchange和parseResponse。但是,在此之前,请确保不要使用submit类型的按钮,除非您取消其默认行为。@amadeus我已经查看了按钮类型和