我想在高级和正常之间切换隐藏输入的值?但是下面的脚本不起作用,没有任何反应。
$('#advancedLink').click(function () {
$("#searchType").val($(this).text() == 'normal' ? 'advanced' : 'normal');
return false;
});
但是,如果我切换正常和高级的位置,它将会工作一次,但如果我再次点击它将不会切换回正常状态。
$('#advancedLink').click(function () {
$("#searchType").val($(this).text() == 'normal' ? 'normal' : 'advanced');
return false;
});
但这最后一种方式对我来说似乎不太直观。有任何想法吗?
修改
这是呈现的HTML
<div>
<div class="left" id="searchControl">
<a id="advancedLink" href="#">Advanced search</a><br>
</div>
<input type="hidden" value="normal" name="searchType" id="searchType">
</div>
答案 0 :(得分:2)
您正在检查链接的值,但设置文本框的值。由于链接的值永远不会更改,因此文本框值也不会更改。
这是一个小提琴:http://jsfiddle.net/GKfWB/
$('#advancedLink').click(function () {
$("#searchType").val($('#searchType').val() == 'normal' ? 'advanced' : 'normal');
console.log($("#searchType").val())
return false;
});
答案 1 :(得分:1)
尝试运行:
$('#advancedLink').click(function () {
console.log($(this).text());
return false;
});
看看发生了什么。可能你必须将.text()更改为.val()
答案 2 :(得分:0)
如果没有一些示例html,不确定这是否是你想要做的事情。 (尝试为你的问题设置一个jsfiddle)
这是尝试解决可能的问题: http://jsfiddle.net/infernalbadger/JF4tg/
$('#advancedLink').click(function () {
$("#searchType").val(function() {
return $(this).val() == 'normal' ? 'advanced' : 'normal';
});
return false;
});