简体   繁体   English

即使我填写了字段,我的验证仍然会给我警报

[英]My validation keeps giving me an alert even though I have filled the fields

I have a form like this: 我有这样的形式:

<form id="formDaftar" onsubmit="return daftarClick()" method="post">
<table id="tableFormDaftar" border="0" width="400px" height="300px">
<tr>
<td>Nama</td>
<td><input type="text" name="nama" id="nama" size="39"/></td>
</tr>

<tr>
<td>Alamat</td>
<td><textarea cols="40" rows="4" name="alamat" id="alamat">
</textarea></td>
</tr>
<tr>
<td>Tempat/Tanggal Lahir</td>
<td><input name="tempatLahir" id="tempatLahir" size="39" type="text"/></td>
</tr>

<tr>
<td>Jenis Kelamin</td>
<td><input type="radio" id="radio1" name="gender" id="gender1"/>Laki-laki
    <input type="radio" id="radio1" name="gender" id="gender2"/>Perempuan
</td>
</tr>

<tr>
<td>Pekerjaan</td>
<td><input name="pekerjaan" id="pekerjaan" size="39"/></td>
</tr>

<tr>
<td>Status</td>
<td>
<select id="status" name="status">
<option selected="selected">Lajang</option>
<option>Menikah</option>
<option>Duda</option>
<option>Janda</option>
</select></td>
</tr>

<tr>
<td>Agama</td>
<td><select id="agama" name="agama">
<option>Islam</option>
<option selected="selected">Kristen</option>
<option>Katholik</option>
<option>Budha</option>
<option>Hindu</option>
</select></td>
</tr>
<tr>
<td>Kewarganegaraan</td>
<td><select id="kwn">
<option selected="selected">Indonesia</option>
<option>Asing</option>
</select></td>
</tr>
<tr>
<td colspan="2" id="colbutton"> <button name="masukkan" type="submit" id="masukkan">Masukkan</button> <button type="reset" name="batalkan" id="batalkan">Batalkan</button></td>
</tr>
</table></form>

I have a script like this: 我有一个像这样的脚本:

var nama = document.getElementById("nama").value;
var alamat = document.getElementById("alamat").value;
var tempatLahir = document.getElementById("tempatLahir").value;
var gender;

if (document.getElementById("gender1").checked){
    gender = document.getElementById("gender1").value;
}
else if (document.getElementById("gender2").checked){
    gender = document.getElementById("gender2").value;
}

var a = document.getElementById("agama");
var agama = a.options[a.selectedIndex].text;

var pekerjaan = document.getElementById("pekerjaan").value;

var b = document.getElementById("status");
var status = b.options[b.selectedIndex].text;

var c = document.getElementById("kwn");
var kwn = c.options[c.selectedIndex].text;

function daftarClick(){

    if (nama == ""){
        alert("Nama harus diisi!"); 
        return false;
    }
    else if (alamat == ""){
        alert("Alamat harus diisi!");
        return false;
    }
    else if (tempatLahir == ""){
        alert("Tempat/Tanggal Lahir harus diisi!");
        return false;
    }
    else if(!document.getElementById("gender1").checked && !document.getElementById("gender2").checked){
        alert("Jenis Kelamin harus dipilih!");
        return false;
    }

}

The problem is that even though I have filled the fields, it keeps showing the alert() saying that I need to fill the fields. 问题是,即使我已经填写了这些字段,它仍会显示alert()说我需要填写这些字段。

I have set the validation which will show an alert if the user had not put any letters in the fields but no matter what I put in the fields, it keeps saying that I haven't put it there. 我已经设置了验证,如果用户没有在字段中输入任何字母,但是无论我在字段中输入了什么,它都会显示一个警报,它一直在说我没有把它放在那里。 What did I get wrong here? 我在这里错了什么?

它说我需要填写已经填写的表格

Try this: 尝试这个:

<script type="text/javascript">


function daftarClick(){

    var nama = document.getElementById("nama").value;
    var alamat = document.getElementById("alamat").value;
    var tempatLahir = document.getElementById("tempatLahir").value;
    var gender;

    if (document.getElementById("gender1").checked){
        gender = document.getElementById("gender1").value;
    }
    else if (document.getElementById("gender2").checked){
        gender = document.getElementById("gender2").value;
    }

    var a = document.getElementById("agama");
    var agama = a.options[a.selectedIndex].text;

    var pekerjaan = document.getElementById("pekerjaan").value;

    var b = document.getElementById("status");
    var status = b.options[b.selectedIndex].text;

    var c = document.getElementById("kwn");
    var kwn = c.options[c.selectedIndex].text;




    if (nama == ""){
        alert("Nama harus diisi!"); 
        return false;
    }
    else if (alamat == ""){
        alert("Alamat harus diisi!");
        return false;
    }
    else if (tempatLahir == ""){
        alert("Tempat/Tanggal Lahir harus diisi!");
        return false;
    }
    else if(!document.getElementById("gender1").checked && !document.getElementById("gender2").checked){
        alert("Jenis Kelamin harus dipilih!");
        return false;
    }

}
</script>

EDIT: The checkboxes in the HTML have multiple id attributes, which is an error, and thus document.getElementById cannot find them. 编辑: HTML中的复选框具有多个id属性,这是一个错误,因此document.getElementById无法找到它们。

<form id="formDaftar" onsubmit="return daftarClick()" method="post">
<table id="tableFormDaftar" border="0" width="400px" height="300px">
<tr>
<td>Nama</td>
<td><input type="text" name="nama" id="nama" size="39"/></td>
</tr>

<tr>
<td>Alamat</td>
<td><textarea cols="40" rows="4" name="alamat" id="alamat">
</textarea></td>
</tr>
<tr>
<td>Tempat/Tanggal Lahir</td>
<td><input name="tempatLahir" id="tempatLahir" size="39" type="text"/></td>
</tr>

<tr>
<td>Jenis Kelamin</td>
<!-- Fix is here, id="radio1" removed from both -->
<td><input type="radio" name="gender" id="gender1"/>Laki-laki
    <input type="radio" name="gender" id="gender2"/>Perempuan        
</td>
</tr>

<tr>
<td>Pekerjaan</td>
<td><input name="pekerjaan" id="pekerjaan" size="39"/></td>
</tr>

<tr>
<td>Status</td>
<td>
<select id="status" name="status">
<option selected="selected">Lajang</option>
<option>Menikah</option>
<option>Duda</option>
<option>Janda</option>
</select></td>
</tr>

<tr>
<td>Agama</td>
<td><select id="agama" name="agama">
<option>Islam</option>
<option selected="selected">Kristen</option>
<option>Katholik</option>
<option>Budha</option>
<option>Hindu</option>
</select></td>
</tr>
<tr>
<td>Kewarganegaraan</td>
<td><select id="kwn">
<option selected="selected">Indonesia</option>
<option>Asing</option>
</select></td>
</tr>
<tr>
<td colspan="2" id="colbutton"> <button name="masukkan" type="submit" id="masukkan">Masukkan</button> <button type="reset" name="batalkan" id="batalkan">Batalkan</button></td>
</tr>
</table></form>

It is because your variables were declared at page load so then your inputs were empty and the variables got empty values 这是因为您的变量是在页面加载时声明的,因此您的输入为空并且变量的值为空

Change it to 更改为

<script type="text/javascript">

function daftarClick(){
    var nama = document.getElementById("nama").value;
    var alamat = document.getElementById("alamat").value;
    var tempatLahir = document.getElementById("tempatLahir").value;
    var gender;

    if (document.getElementById("gender1").checked){
        gender = document.getElementById("gender1").value;
    }
    else if (document.getElementById("gender2").checked){
        gender = document.getElementById("gender2").value;
    }

    var a = document.getElementById("agama");
var agama = a.options[a.selectedIndex].text;

var pekerjaan = document.getElementById("pekerjaan").value;

var b = document.getElementById("status");
var status = b.options[b.selectedIndex].text;

var c = document.getElementById("kwn");
var kwn = c.options[c.selectedIndex].text;


if (nama == ""){
    alert("Nama harus diisi!"); 
    return false;
}
else if (alamat == ""){
    alert("Alamat harus diisi!");
    return false;
}
else if (tempatLahir == ""){
    alert("Tempat/Tanggal Lahir harus diisi!");
    return false;
}
else if(!document.getElementById("gender1").checked && !document.getElementById("gender2").checked){
    alert("Jenis Kelamin harus dipilih!");
    return false;
}

}
</script>

check this I think it is working as you are expecting 检查一下,我认为它正在按预期工作

https://jsbin.com/ragoces/edit?html,js,output https://jsbin.com/ragoces/edit?html,js,输出

var nama = document.getElementById("nama");
var alamat = document.getElementById("alamat");
var tempatLahir = document.getElementById("tempatLahir");
var gender;

if (document.getElementById("gender1").checked){
    gender = document.getElementById("gender1").value;
}
else if (document.getElementById("gender2").checked){
    gender = document.getElementById("gender2").value;
}

var a = document.getElementById("agama");
var agama = a.options[a.selectedIndex].text;

var pekerjaan = document.getElementById("pekerjaan").value;

var b = document.getElementById("status");
var status = b.options[b.selectedIndex].text;

var c = document.getElementById("kwn");
var kwn = c.options[c.selectedIndex].text;


function daftarClick(){

if (nama.value === ""){
    alert("Nama harus diisi!"); 
    return false;
}
else if (alamat.value === ""){
    alert("Alamat harus diisi!");
    return false;
}
else if (tempatLahir.value === ""){
    alert("Tempat/Tanggal Lahir harus diisi!");
    return false;
}
else if(!document.getElementById("gender1").checked &&           !document.getElementById("gender2").checked){
alert("Jenis Kelamin harus dipilih!");
return false;
 }

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 我不知道为什么我的 min function 不工作它一直给我 0 作为答案 - I have no Idea why is my min function not working it keeps on giving me 0 as an answer 即使我没有将任何字段设置为唯一,为什么 Mongo 会给我 E11000 错误? - Why is Mongo giving me the E11000 error even though I don't have any field set to unique? 我有 html 代码,里面有 JS,我有一个问题,提交按钮没有给我警报 window,你能纠正我的代码吗? - i have html code with JS in it, i have a problem that the submit button not giving me an alert window, can you correct my code? 我想在我的应用程序中使用ng2-charts。尽管我已正确导入它,但仍然给我一个错误。找不到模块“ ng2-charts / ng2-charts” - I want to use ng2-charts in my app.though I have imported it correctly still it is giving me an error Cannot find module “ng2-charts/ng2-charts” 为什么我的程序没有给我分配的折扣? - Why is my program not giving me the discounts I have assigned? 我正在尝试构建一个简单的货币转换器。 我的 function 转换货币一直给我一个错误 - I'm trying to build a simple currency converter. my function to convert the currency keeps giving me an error 尽管我在 React 中填充了状态,但它在渲染中看起来是空的 - Even though I filled the state in React, it looks empty in the render 即使表单正确填写,我的快速验证也会返回错误 - My express validation returns errors even when the form is correctly filled 我的JavaScript有什么问题? 在Dreamweaver中一直给我一个错误 - What's wrong with my javascript? it keeps giving me an error in dreamweaver 即使我有一个数组,map 也不是 function - map is not a function even though I have an array
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM