我有一个按钮,当我点击该按钮时,它应该改变它的text.it在foreach循环内部。但问题是当我点击该按钮时,第一个按钮文本会发生变化。我想更改我点击的特定按钮文本。我该怎么办?
前端部分
@foreach($products as $product)
<button onclick="this.disabled=true; quoteAdd('{!!$product->id!!}')" id="inquireButton" class="btn btn-danger ">Inquire</button>
@endforeach
Javascript部分
function quoteAdd(productId)
{
$("#inquireButton").html('Save');
// other code ..
}
答案 0 :(得分:1)
您需要使用this
关键字将按钮引用传递给quoteAdd
方法,如下所示。
<强> PHP 强>
@foreach($products as $product)
<button onclick="this.disabled=true; quoteAdd('{!!$product->id!!}', this)" id="inquireButton" class="btn btn-danger ">Inquire</button>
@endforeach
<强> JS 强>
function quoteAdd(productId, button) {
$(button).text('Save');
//other code ..
}
FYI id
对每个元素都应该是唯一的。
答案 1 :(得分:0)
HTML中id
属性的值应该是唯一的,所以基本上你所做的是错误的(你不应该在循环中有固定的id)。
无论如何,您都可以执行以下操作:
//前端部分
@foreach($products as $product)
<button onclick="this.disabled=true; quoteAdd(this)" id="inquireButton_{!!$product->id!!}" class="btn btn-danger ">Inquire</button>
@endforeach
// Javascript Part
function quoteAdd(el)
{
$(el).html('Save');
// other code ..
}