Prototype或JQuery是否更改隐藏字段的值?
我在更改隐藏字段的值时遇到了一些问题 功能:Prototype或JQuery是否更改隐藏字段的值?,jquery,prototypejs,Jquery,Prototypejs,我在更改隐藏字段的值时遇到了一些问题 功能: function remove_fields (link) { $(link).next('input[type=hidden]').value = ''; $(link).up(".open_hours").hide(); } 如果我注释掉$(link).next('input[type=hidden]')。value=''隐藏功能工作。尝试设置该值时出错: $(link).next("input[type=hidden]") i
function remove_fields (link) {
$(link).next('input[type=hidden]').value = '';
$(link).up(".open_hours").hide();
}
如果我注释掉$(link).next('input[type=hidden]')。value=''代码>隐藏功能工作。尝试设置该值时出错:
$(link).next("input[type=hidden]") is undefined
下面是我关于函数调用的HTML:
<div class="monday">
<div class ="open_hours">
<li><label for="location_monday">Monday</label>
Open: 06:29PM -
Close: 04:21PM
<a href="#" onclick="remove_fields(this); return false;">remove</a></li>
<li class="hidden optional" id="location_monday_open_input"><input id="location_monday_open" name="location[monday_open]" type="hidden" value="18:29:00" /></li>
<li class="hidden optional" id="location_monday_close_input"><input class="close" id="location_monday_close" name="location[monday_close]" type="hidden" value="16:21:00" /></li>
</div>
</div>
星期一
开放时间:下午6:29-
闭馆时间:下午4时21分
不知道我做错了什么?谢谢大家 您已经标记了jquery和prototype,在jquery中您可以这样尝试:
$(link).next('input[type=hidden]').val = '';
您已经标记了jquery和prototype,在jquery中您可以这样尝试:
$(link).next('input[type=hidden]').val = '';
基于jQuery的答案
由于您为输入提供了一个id,因此可以使用id选择器
$("#location_monday_close").val('');
如果您希望获得不基于id的隐藏元素,那么可以使用
$(link).closest('div.open_hours').find('input[type=hidden]').val('');
另外,如果要隐藏类名为open_hours的div,可以使用
$("div.open_hours").hide();
我已经为您重新编写了代码
$(function(){
$("#anch1").click(function(){
remove_fields ( $(this) );
});
function remove_fields (link)
{
var parentDiv = link.closest('div.open_hours');
parentDiv.find('input[type=hidden]').val('');
parentDiv.hide();
}
});
<div class="monday">
<div class ="open_hours">
<li><label for="location_monday">Monday</label>
Open: 06:29PM -
Close: 04:21PM
<a id="anch1" href="#" return false;">remove</a>
</li>
<li class="hidden optional" id="location_monday_open_input">
<input id="location_monday_open" name="location[monday_open]" type="hidden" value="18:29:00" />
</li>
<li class="hidden optional" id="location_monday_close_input">
<input class="close" id="location_monday_close" name="location[monday_close]" type="hidden" value="16:21:00" />
</li>
</div>
</div>
$(函数(){
$(“#1”)。单击(函数(){
删除_字段($(this));
});
函数删除_字段(链接)
{
var parentDiv=链接最近('div.open_hours');
parentDiv.find('input[type=hidden]').val(“”);
parentDiv.hide();
}
});
星期一
开放时间:下午6:29-
闭馆时间:下午4时21分
编辑
查找选择器紧跟其后的同级(即锚定标记)。在HTML中,锚标记没有下一个同级项。基于jQuery的答案
由于您为输入提供了一个id,因此可以使用id选择器
$("#location_monday_close").val('');
如果您希望获得不基于id的隐藏元素,那么可以使用
$(link).closest('div.open_hours').find('input[type=hidden]').val('');
另外,如果要隐藏类名为open_hours的div,可以使用
$("div.open_hours").hide();
我已经为您重新编写了代码
$(function(){
$("#anch1").click(function(){
remove_fields ( $(this) );
});
function remove_fields (link)
{
var parentDiv = link.closest('div.open_hours');
parentDiv.find('input[type=hidden]').val('');
parentDiv.hide();
}
});
<div class="monday">
<div class ="open_hours">
<li><label for="location_monday">Monday</label>
Open: 06:29PM -
Close: 04:21PM
<a id="anch1" href="#" return false;">remove</a>
</li>
<li class="hidden optional" id="location_monday_open_input">
<input id="location_monday_open" name="location[monday_open]" type="hidden" value="18:29:00" />
</li>
<li class="hidden optional" id="location_monday_close_input">
<input class="close" id="location_monday_close" name="location[monday_close]" type="hidden" value="16:21:00" />
</li>
</div>
</div>
$(函数(){
$(“#1”)。单击(函数(){
删除_字段($(this));
});
函数删除_字段(链接)
{
var parentDiv=链接最近('div.open_hours');
parentDiv.find('input[type=hidden]').val(“”);
parentDiv.hide();
}
});
星期一
开放时间:下午6:29-
闭馆时间:下午4时21分
编辑
查找选择器紧跟其后的同级(即锚定标记)。在HTML中,锚定标记没有下一个同级。对于prototype,请执行以下操作:
function remove_fields(link) {
var e = link.next().identify();
$(e).setValue("");
$(e).up(".open_hours").hide();
}
在设置值之前,您需要识别/返回元素id。对于prototype,请执行以下操作:
function remove_fields(link) {
var e = link.next().identify();
$(e).setValue("");
$(e).up(".open_hours").hide();
}
在设置值之前,您需要识别/返回元素id。在jquery up中不是函数,但您说jquery?在jquery up中不是函数,但您说jquery?是的,我已经尝试过了。。。因为某种原因,这对我不起作用。。。脚本将无错误运行(FireBug),但当我提交表单时,旧值将被保留?是的,我尝试过。。。因为某种原因,这对我不起作用。。。脚本将无错误地运行(FireBug),但当我提交表单时,旧值将被保留?$(link).closest('div.open_hours').find('input[type=hidden]')).val('';这管用!让我问你为什么这不起作用:$(link).next('input[type=hidden')).val('')?再次感谢请参阅我对答案的编辑。此外,我已经从HTML中删除了onclick,并将其放入脚本中。$(link).closest('div.open_hours').find('input[type=hidden]).val('';这管用!让我问你为什么这不起作用:$(link).next('input[type=hidden')).val('')?再次感谢请看我对答案的编辑。另外,我已经从HTML中删除了onclick,并将其放入脚本中。