我发现此链接非常有用
get selected textbox id jQuery
然而,我现在要做的是重用这个id来为每个实际循环的文本框做一些修剪功能。我试过这段代码:
<html>
<head>
<?php echo $this->Html->script("jquery-1.4.3.min"); ?>
</head>
<body>
<?php
echo $content_for_layout;
?>
<script type="text/javascript">
$(document).ready(function () {
// alert('JQuery is succesfully included');
/* $(':submit').click(function(){
<?php if(($this->request->controller=='members')&&($this->action=='register')):?>
//alert('well');
var some = $.trim($(":text").val());
alert(some);
<?php endif; ?>
});
*/
$(':submit').click(function(){
$('form input[type="text"]').each(function(){
//get value of id of textbox here
var id = $(this).attr('id');
var some = $.trim($((this).attr('id')).val());
alert(some);
});
});
});
</script>
</body>
</html>
但它没有弹出警报框。
答案 0 :(得分:0)
我对你想要达到的目标感到有点困惑,但这一行有一个问题:
var some = $.trim($((this).attr('id')).val());
具体而言,(this).attr('id')
不起作用,因为(this)
被解释为this
而this
是当前没有.attr()
的DOM元素方法
我想你可能想要这样做:
var some = $.trim($("#" + $(this).attr('id')).val());
// or, given you already have a variable id equal to $(this).attr('id')
var some = $.trim($('#' + id).val());
也就是说,您正在尝试从当前元素获取id,然后使用该id选择元素并获取其值,然后修剪该值。但是,如果您已经拥有对元素的引用,则不需要id来获取值 - 您可以这样做:
var some = $.trim($(this).val());
// or
var some = $.trim(this.value);
如果要循环浏览所有文本框并将其设置为当前值的剪裁版本,可以执行以下操作:
$('form input[type="text"]').each(function(){
this.value = $.trim(this.value);
// or if you want the slower and harder to read way:
$(this).val( $.trim($(this).val()) );
});
或者:
$('form input[type="text"]').val(function(i,currentVal) {
return $.trim(currentVal);
});
有关将回调函数传递给.val()
的信息,请参阅.val()
doco。