防止空输入返回undind,而是返回一个空字符串


prevent empty input from returning undefind and instead return an empty string

正如标题所示,我有一个注册表单,因为我知道javascript可以被禁用,所以我决定在服务器端php中检查空输入,但所有空输入都返回undefined作为字符串,而不仅仅是一个空字符串,我是否可以阻止它返回或确保值为空?(用户仍然可以选择未定义的名称或用户名)Javascript函数:

var lnk = 'register.php?n=' + $('#fname').value + '&f=' + $('#pnumb').value + '&m=' + $('#elecm').value + '&l=' + $('#uname').value + '&p=' + $('#pword').value + '&p2=' + $('#pconf').value;
        $.post(lnk, function (data) { //Do something with data }

PHP:

<?php
//databse info
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "phptest";
//Getting values from link
$comname = $_GET['n'];
$phone = $_GET['f'];
$mail = $_GET['m'];
$uname = $_GET['l'];
$pass = $_GET['p'];
$conf = $_GET['p2'];
//Checking if any value is left empty
if (empty($comname)) {
    echo '1';
}
elseif (empty($phone)) {
    echo '2';
}
elseif (empty($mail)) {
    echo '3';
}
elseif (empty($uname)) {
    echo '4';
}
elseif (empty($pass)) {
    echo '5';
}
elseif (empty($conf)) {
    echo '6';
}

首先,它不应该是吗

$('#fname').val()

使用jQuery时?当我们在做这件事的时候,使用jQuery只根据ID选择一个元素会浪费一些性能。为什么不使用

document.getElementById('fname').value

这可能只有几毫秒,但它们在更大的脚本中加起来,所以当你可以获得你需要的东西时,为什么不使用香草JS呢?:)

回答您的问题:

(document.getElementById('fname').value || '')

就是你想要的。

首选此

$("#someID").value||"默认值"

如果用户输入错误(即空字符串、未定义等),它将允许您定义默认值

如果用户输入未定义,它将不是undefined,而是字符串"未定义"

var lnk = 'register.php?n=' + ($('#fname').value||"") + '&f=' + ($('#pnumb').value||"") + '&m=' + ($('#elecm').value||"") + '&l=' + ($('#uname').value||) + '&p=' + ($('#pword').value||"") + '&p2=' + ($('#pconf').value||);
        $.post(lnk, function (data) { //Do something with data }

您可以按照这个例子来查看var是否未定义,如果是,它将返回一个空字符串,如果不是,则返回变量本身

var string = ( typeof(string ) == 'undefined' ) ? "" :string ;