更改时的Javascript警报(显示错误)

时间:2017-11-12 06:58:34

标签: javascript jquery

尝试从select中提醒选定的选项,但它没有提醒。

显示错误:

  

{" message":" Uncaught TypeError:无法读取属性'值'的   null"," filename":" https://stacksnippets.net/js"," lineno":18,
  " colno":43}

我试过了:



function selectOption() {
  var x = document.getElementById("item1").value;
  alert("You selected: " + x);
  if (option == "Item") {

    return true;
  } else if (option == "ZZ2017TF11A1") {
    return true;
  } else if (option == "ZZ2017TF11A2") {
    return true;
  }

  return false;
}

<select class="country" name="item1" onChange="selectOption()">
  <option value="Select Item">Item</option>
  <option value="ZZ2017TF11A1">Shirt</option>
  <option value="ZZ2017TF11A2">Pant</option>
</select>
&#13;
&#13;
&#13;

如何解决?

5 个答案:

答案 0 :(得分:1)

如果您需要使用纯 if(isset($_COOKIE['SNID'])){ if(DB::query('SELECT user_id FROM login_tokens WHERE token=:token', array(':token'=>sha1($_COOKIE['SNID'])))){ $userid = DB::query('SELECT user_id FROM login_tokens WHERE token=:token', array(':token'=>sha1($_COOKIE['SNID'])))[0]['user_id']; if (isset($_COOKIE['SNID_'])){ return $userid; }else{ $cstrong = True; $token = bin2hex(openssl_random_pseudo_bytes(64, $cstrong)); DB::query('INSERT INTO login_tokens VALUES (\'\', :token, :user_id)', array(':token'=>sha1($token), 'user_id'=>$userid)); DB::query('DELETE FROM login_tokens WHERE token=:token', array(':token'=>sha1($_COOKIE['token']))); setcookie("SNID", $token, time() + 60 * 60 * 24 * 7, '/', NULL, NULL, TRUE); setcookie("SNID_", '1', time() + 60 * 60 * 24 * 3, '/', NULL, NULL, TRUE); return $userid; } } } return false; } (不使用JavaScript)执行此操作,则可以尝试此操作。我做了一些更改,以使代码更容易理解。

jQuery

在select标记内添加function selectOption() { var elem = document.getElementById("item1"); // get selected option value var selectedOptVal = elem.options[elem.selectedIndex].value; alert("You selected: " + selectedOptVal); // get selected option text var selectedOptTxt = elem.options[elem.selectedIndex].text; if (selectedOptTxt == "Item") { return true; } else if (selectedOptTxt == "ZZ2017TF11A1") { return true; } else if (selectedOptTxt == "ZZ2017TF11A2") { return true; } return false; } 字段。

id

此外,请关注您的嵌套 - 如果部分。因为它不可用。

答案 1 :(得分:0)

如果您使用document.getElementById("item1"),请在id="item1"元素中添加<select>

答案 2 :(得分:0)

只需使用$('#item1').val()

即可
function selectOption() {
    var x = $('#item1').val();
    var option = $('#item1 option');
    alert("You selected: " + x);

    if (option == "Item") {
        return true;
    } else if (option == "ZZ2017TF11A1") {
        return true;
    } else if (option == "ZZ2017TF11A2") {
        return true;
    }

    return false;
}

#item1是指ID,您只在HTML中指定了name

<select id="item1" class="country" name="item1" onChange="selectOption()">
  <option value="Select Item">Item</option>
  <option value="ZZ2017TF11A1">Shirt</option>
  <option value="ZZ2017TF11A2">Pant</option>
</select>

您也忘了定义option,您可以$('#item1 option')进行定义。

答案 3 :(得分:0)

试试这个:

function selectOption(element) {
  var x = element.options[element.selectedIndex].text;
  alert("You selected: " + x);
  var option = element.options[element.selectedIndex].value;

  if (option == "Item") {

    return true;
  } else if (option == "ZZ2017TF11A1") {
    return true;
  } else if (option == "ZZ2017TF11A2") {
    return true;
  }

  return false;
}
<select class="country" id="item1" onChange="selectOption(this)">
  <option value="Select Item">Item</option>
  <option value="ZZ2017TF11A1">Shirt</option>
  <option value="ZZ2017TF11A2">Pant</option>
</select>

答案 4 :(得分:0)

function selectOption(){
$(this).html(alert("You selected:"+ $("#item1").val()));//for selected option value
$(this).html(console.log("You selected:"+ $("#item1 option:selected").text()));//for selected option text
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="item1" class="country" name="item1" onChange="selectOption()">
  <option value="Select Item">Item</option>
  <option value="ZZ2017TF11A1">Shirt</option>
  <option value="ZZ2017TF11A2">Pant</option>
</select>