尝试从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;
如何解决?
答案 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>