0

jqueryを使用していくつかの非表示フィールドを選択し、aaテーブルの特定の行からいくつかの値を取得してajax呼び出しを実行しようとしています。最初の変数(ebId)は正常に取得されますが、他のすべての変数が設定されることはありません。それらはすべてnullです。これらの非表示フィールドは動的に作成され、同じものになるため、非表示フィールドの名前を使用できません。だから私はクラスを使おうとしています。最後の3つの変数(_product、_applicantType、_ssn)を選択する方法が機能しない理由はありますか?

これがJQueryと関連するHTMLです

$('.submissionStatus').click(function () {
        var _ebId = $(this).next('.ebId').val();
        var _product = $(this).next('.product').val();
        var _applicantType = $(this).next('.applicantType').val();
        var _ssn = $(this).next('.ssn').val();

        $.ajax({
            type: 'GET',
            data: { ebId: _ebId, product: _product, applicantType: _applicantType, ssn: _ssn },
            url: '@Url.Action("GetSeverityErrors", "AppListing")',
            success: function (data) {
                alert('Call success')
                $(this).next('.loaded').val(true);
            },
            error: function (xhr, status, error) {
                alert('An Error Occured.');
            }
        });
    });

<input type="hidden" class="ebId" value="@item.ElectedBenefitId" />
<input type="hidden" class="product" value="@item.Product" />
<input type="hidden" class="applicantType" value="@item.ApplicantType" />
<input type="hidden" class="ssn" value="@item.Ssn" />    

もう少しHTMLの洞察:

<td align="left">
  <a style="color:red;" class="submissionStatus" href="javascript: void(0)" title="SubmissionStatus">@item.SubmissionStatus.ToPrettyString()</a>

<input type="hidden" class="ebId" value="@item.ElectedBenefitId" />
<input type="hidden" class="product" value="@item.Product" />
<input type="hidden" class="applicantType" value="@item.ApplicantType" />
<input type="hidden" class="ssn" value="@item.Ssn" />
<input type="hidden" class="loaded" value="false" />
 </td>
4

2 に答える 2

1

closest()パラメータに基づいて最も近い親要素を選択することに注意してください。これを試してください。

var _ebId = $(this).siblings('input.ebId').val();
var _product = $(this).siblings('input.product').val();
var _applicantType = $(this).siblings('input.applicantType').val();
var _ssn = $(this).siblings('input.ssn').val();
于 2012-06-29T20:08:05.327 に答える
0
$('.submissionStatus').click(function () {

        var storThis = this;
        var _ebId = $(storThis).next('.ebId').val();
        var _product = $(storThis).next('.product').val();
        var _applicantType = $(storThis).closest('.applicantType').val();
        var _ssn = $(storThis).closest('.ssn').val();
于 2012-06-29T20:09:17.187 に答える