Javascript $(';#id#u性别';)与var性别=$(';#id#u性别';)
用户需要选择性别 HTMLJavascript $(';#id#u性别';)与var性别=$(';#id#u性别';),javascript,jquery,Javascript,Jquery,用户需要选择性别 HTML <form ...> <select id="id_gender" name="gender" onchange="hideMaidenName(this.value)"> <option value="M">Male</option> <option value="F">Female</option> <option value="U" selected="selected">To
<form ...>
<select id="id_gender" name="gender" onchange="hideMaidenName(this.value)">
<option value="M">Male</option>
<option value="F">Female</option>
<option value="U" selected="selected">To be defined</option>
</select>
</form>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.2/jquery.min.js">
半工作代码(功能减少,因为我未能将性别值更改回“U”:
var gender = $('#id_gender')
gender
[<select id="id_gender" name="gender" onchange="hideMaidenName(this.value)">…</select>]
gender.val()
"U"
var maiden_name = $('#id_maiden_name');
function hideMaidenName(gender) {
if ($('#id_gender').val() == 'M') {
if (maiden_name.val() != "") {
$('#id_gender').val('U')
alert("Clear maiden name!");
return;
}
}
}
</script>
var gender = $('#id_gender');
var maiden_name = $('#id_maiden_name');
var maiden_name_row = $('#id_maiden_name_row')
function hideMaidenName(gender) {
if (gender.val() == 'M') {
if (maiden_name.val() != "") {
gender.val('U')
alert("Claear maiden name!");
return;
}
maiden_name_row.hide()
}
else {
maiden_name_row.show()
}
}
var gender = $('#id_gender');
var maiden_name = $('#id_maiden_name');
function hideMaidenName(gender) {
if (gender == 'M') {
if (maiden_name.val() != "") {
alert("Claear maiden name!");
return;
}
}
}
问题是:
不必设置选择字段的值,只需将选项设置为手动选择的值U即可
$('select#id_gender option[value="U"]').prop('selected', true)
编辑:
var gender = $('#id_gender');
var maiden_name = $('#id_maiden_name');
function hideMaidenName(gender) {
if (gender == 'M') {
if (maiden_name.val() != "") {
//selecting option with value "U"
$('select#id_gender option[value="U"]').prop('selected', true)
return;
}
}
}
编辑2:
我稍后会尝试回答其他问题。您在更改时将所选选项的值作为参数传递给函数
hidemaidname
(这是字符串,例如'M'
)。我将其更改为传递DOM元素(select
),通过将此
作为参数传递。您还必须包装性别
,并将其用作jquery对象,例如$(性别)
,否则会出现错误。val()
不是函数:
var-gender=$('id#u-gender');
var maiden_name=$('id_maiden_name');
var maiden_name_row=$(“#id_maiden_name_row”)
功能hideMaidenName(性别){
//这里您必须使用性别作为jquery对象
if($(性别).val()=='M'){
if(maiden_name.val()!=“”){
性别。val('U'))
警报(“克莱尔少女的名字!”);
返回;
}
maiden_name_row.hide()
}否则{
处女之名行。秀()
}
}
男性
女性
待定义
$('#id_-gender')
返回一个类似数组的对象,该对象包含与选择器匹配的所有元素。var-gender=$('#id_-gender')
为该类似数组的对象分配一个变量。@Alex-Char,换句话说,在gender中我们放置了一个数组。但是为什么行为会如此不同?为什么我们在那里只找到一个字符串(以半工作代码为例)等等,所有的问题都在这里。非常感谢你的回答。但我不仅想得到工作代码,而且想了解这里发生了什么。你能帮我回答这些问题吗?