仅当值不为空时才执行函数

时间:2018-06-01 09:19:12

标签: javascript html

我有以下html,它是webform的一部分:

<input type="hidden" name="userID" id="control_COLUMN43" value="%%userID%%">

此字段的值由数据库动态生成。该字段的值可能为空。

接下来,我创建了一个函数,在提交webform时,将该字段的值(通过Ajax)发送到另一个数据库。

我现在要做的是:只有字段&#34; userID&#34;的值才能执行此功能。不是空的。如果它是空的,我不希望执行此功能。

所以我认为它会是这样的,但我很难找到正确的方法来做到这一点:

if (#control_COLUMN43 !=== "") //this is the id of the field
{
function SendAjax()
   {
      if
      {
        //code
      }
      else
      {
        //code
      }
    }
}
else
{
//don't execute function
}

或者相反,我猜?

有人可以帮我这个吗?

提前致谢!

11 个答案:

答案 0 :(得分:0)

You can check empty value like this





    function isEmpty(str) {
         return (!str || 0 === str.length);
    }

    var val = document.getElementById('control_COLUMN43').value;
    var col = isEmpty(val);
    if (col) {
     function SendAjax(){
      if
      {
        //code
      }
      else
      {
        //code
      }
    }
}
else
{
//don't execute function
}

答案 1 :(得分:0)

// get the contents of the form element
var control_COLUMN43 = document.getElementById("control_COLUMN43").value;

// process the data
if( control_COLUMN43 != "" ) {......

答案 2 :(得分:0)

一次有几个问题:

  • 您正在通过调用混合声明一个功能。
  • 要从控件中获取值,请使用document.getElementById("...").value
  • not ===的正确表示法是!==

这是怎么回事:

// Declare the function
function SendAjax()
{
    if
    {
        //code
    }
    else
    {
        //code
    }
}

// Get value
var value = document.getElementById("control_COLUMN43").value;

// Call the function conditionally
if (value !== "")
{
    SendAjax();
}

答案 3 :(得分:0)

您不应在条件内声明函数。如果您在执行时如果不满足条件,那么将无法使用可能导致错误的功能。因此,您应该将条件放在函数中。

您可以将条件修改为以下

function SendAjax() {
    if (document.getEelementById("control_COLUMN43").value) {
        //code
    }
}

答案 4 :(得分:0)

您可以使用getElementById(id).value访问输入的值 并在if块之外声明你的函数,如:

function SendAjax()
   {
      if
      {
        //code
      }
      else
      {
        //code
      }
    }

if (document.getElementById('txt_name').value) //this is the id of the field
{
  SendAjax()
}
else
{
//don't execute function
}

答案 5 :(得分:0)

如果没有JQuery,你需要的if语句应该是这样的:

if (document.getElementById("control_COLUMN43").value !=== "") {
   // .. commands
}

答案 6 :(得分:0)

基本上,您必须检查value元素的input属性。首先使用dom选择器,您可以使用id选择元素,然后可以访问元素的value属性。如果它不是null或未定义或只是空格,那么你可以调用你的函数

&#13;
&#13;
function handleClick(){
  // Extract value from input element
  let val = document.getElementById('input').value;
  // Check value is empty or not
  if(val){
    // If not empty
    console.log('Value is : ' + val);
  }
  else{
    // If empty
    console.log('Empty input');
  }
}
&#13;
<input id="input" type="text">
<button onclick="handleClick()">SUBMIT</button>
&#13;
&#13;
&#13;

答案 7 :(得分:0)

首先使用document.getElementById()获取隐藏的输入值,然后检查它是否为null,如下所示:

var userId = document.getElementById("control_COLUMN43");
if (userId) //this is the id of the field
{
   SendAjax()
}
else
{
  alert("UserId is null);
}

function SendAjax()
   {
      if
      {
        //code
      }
      else
      {
        //code
      }
    }

答案 8 :(得分:0)

如果条件不正确,您编写的代码ID值必须如下:

if(document.getElementById("control_COLUMN43").value != ''){
    //Your code here
}

答案 9 :(得分:0)

像这样使用

    // Also u can add null check
        if(data !== '') {
   // do something
}

但是,如果您只是想确保代码只针对“合理”值运行,那么您可以像其他人已经说过的那样写:

if (data) {
  // do something
}

因为在javascript中,空值和空字符串都等于false(即null == false)。

这两部分代码之间的区别在于,对于第一部分,每个非特定空字符串的值都将输入if。但是,在第二个上,每个true-ish值都将输入if:false,0,null,undefined和empty字符串,不会。

答案 10 :(得分:0)

如果条件检查$(&#34;#control_COLUMN43&#34;)。val() 它可以为null或&#39;&#39;所以你可以相应地申请条件。