如果tru

2022-08-10 12:14:32 发布

您现在位置:Python中文网/ 问答频道 /正文

编辑-问题出在重定向中,由Ahmed使用立即调用的函数表达式aka IIFE解决

重定向到另一页时出现问题,值是字符串和整数“CharFields”。。else语句工作得很好,但是if语句在我键入它时,页面只是刷新,什么也没有发生。你知道吗

我使用java函数从用户输入代码中获取变量 并让Django在一个输入值中打印模型,这两个工作很好,我用打印测试了它们,问题是比较这些值并重定向到另一个URL

function readText () {
    var value1 = document.getElementById("trcode").value;
    var value2 = document.getElementById("trfcode").value;
    if (value1 === value2) {
        location.href="http://127.0.0.1:8000/myposts";}
    else {
            alert("You typed: " + "Wrong Password");}
}
<form onsubmit="return readText();">
<tr><td height="18" class="subheaderboldtext"> Enter Code: 
<input id="trcode" maxlength="8" class="box">
<input class="submit" type="submit" value="SUBMIT">

<button id="trfcode" value="{{ user.profile.trf_code }}">z</button>

Tags: 函数ifvaluevar语句documentelse重定向classvalue1value2getelementbyidreadtexttrfcodetrcode
1条回答
网友
1楼 ·

我对你的代码做了一些修改。正在为id为trfcode的按钮分配一个名为user.profile.trf_code的值。如果用试图匹配的值替换它,它将正常工作。出于测试的目的,我对您的代码做了一些修改,并为其赋值z。在input中输入z,然后单击submit,会得到一个+ve结果。你知道吗

我猜您主要关心的是读取用户配置文件user.profile.trf_code的值。所以你可能想调试一下,看看你是否得到了一个你期望的正确值。你知道吗

调试的一些技巧。在这种情况下,请首先查看每个元素的值,并找出是否要恢复这些值。然后下一步找出是否得到相同的值,依此类推。你知道吗

value="z"放进去就行了。请注意,我添加了额外的日志和警报。请随意取下它。你知道吗

编辑:

如果您在表单中看到,我添加了一个包装函数的函数。这被称为立即调用的函数表达式,也称为IIFE,它基本上是一个函数,可以在那里调用。窗体创建一个事件,该事件有一个名为preventDefaults()的方法,该方法防止每次提交时重新加载或刷新页面。我已经将您的方法包装在一个IIFE下,以防止页面刷新,然后调用了您的函数。我强烈建议你把这个作为你问题的一部分。你知道吗

你的表格

    <form onsubmit="return (function(event) { event.preventDefault();  readText()}) (event)">
        <tr>
            <td height="18" class="subheaderboldtext"> Enter Code:
                <input id="trcode" maxlength="8" class="box">
                <input class="submit" type="submit" value="SUBMIT">

                <!  <img src="/static/guest/images/querybutton.png" alt="Query Button" />  >
            </td>
        </tr>
    </form>
    <button id="trfcode" value="z">z</button>

Javascript如下所示

function readText() {
    var value1 = document.getElementById("trcode").value;
    var value2 = document.getElementById("trfcode").value;
    console.log(`value1 = ${value1}`);
    console.log(`value2 = ${value2}`);

    if (value1 === value2) {
        // location.href = "http://127.0.0.1:8000/myposts";
        console.log(`I am good`);
        alert(`You typed: ${value1}`);
    } else {
        console.log(`I am in else`);
        alert("You typed: " + "Wrong Password");
    }
}