2011-02-22 16 views
0

したがって、1つのテーブルカラムに2つのアンカータグを持つMVC3グリッドを使用します。 行をクリックすると、最初のテーブルセルからアンカータグ値を取得します。 IE *で成功しましたが、FirefoxとChromeではうまくいきません。ここ はコードです:JQueryはIEでしか動作しません

$("#interestTypesGrid tbody tr").live("click", function (e) { 
    $("#SelectedInterestTypeID").val($(this).find('td:first a').val()); 
    $.post(URLGetInterestRates, $("#FormMasterData").serialize(), function (data) { $("#pagedInterestRates").html(data); }); 
}); 

だから、問題はである:

$(this).find('td:first a').val(); 

IEでのみ有効です!!!

+6

IEでしか動作しない場合は、何かが間違っています。 ** IEで動作しない**だけです。 –

答えて

3

<a>タグに値属性がないため、.val()は機能しません。

代わりに.text()をお試しください($.trim()する必要があります)。

$(this).find('td:first a').text() 
3

val機能が取得し、フォーム要素の値を設定するために主に意図されています。取得するには設定/非formタグの内容は、私はあなたにもtextにそれを変更する必要はない場合#SelectedInterestTypeIDは、フォーム要素であることを仮定していtextまたはhtml機能このコードで

$("#interestTypesGrid tbody tr").live("click", function (e) { 
    $("#SelectedInterestTypeID").val($(this).find('td:first a').text()); 
    $.post(URLGetInterestRates, $("#FormMasterData").serialize(), function (data) { $("#pagedInterestRates").html(data); }); 
}); 

を使用してみてください。

これはIEとChromeでworking sampleをテストしました。

更新

指定されたサンプルHTML:

<tr> 
    <td> 
     <a href="/MasterData/ShowInterestTypeDetails?id=11" value="11"> 
      <img src = "../../Content/img/icon_detail_16px.gif" alt="" /> 
     </a> 
    </td> 
    <td>q</td> 
    <td>34</td> 
    <td>q12</td> 
    <td> 
     <a href="/MasterData/DeleteInterestType?id=11" value="11"> 
      <img src = "../../Content/img/icon_delete_16px.gif" alt="" /> 
     </a> 
    </td> 
</tr> 

valueは、HTMLでの有効な属性ではありません。あなたはHTML5をターゲットにしている場合は、実際にはそれはおそらくtrの属性を置くための最も簡単なことだ、データ属性とjQueryからdata機能を使用することができます。

<tr data-interestType='{"id":11}'> 

そして、データ機能を使用して、JavaScriptの:

$("#interestTypesGrid tbody tr").live("click", function (e) { 
    $("#SelectedInterestTypeID").val($(this).data("interestType").id); 
    $.post(URLGetInterestRates, $("#FormMasterData").serialize(), function (data) { $("#pagedInterestRates").html(data); }); 
}); 

もう1つはworking sampleです。

すべての標準が犠牲になる場合は、attr jquery関数を使用して、任意の要素属性の値を取得することができます。

+0

良い応答ありがとうございます。しかし問題はアンカータグにimgがあることです。だから、アンカータグからいくつかの価値を取る必要があります。 ​​​​Q​​34​​Q12​​ Bojan

+0

応答のための私の質問の編集を参照してください@Bojan。 – joshperry

+0

ありがとうございました。私はmvc3グリッドで作業するので、私は往復を行います。値が機能しないので、私はアンカータグのIDを使用します。そうすれば、私は必要な価値を享受することができます。 $( "#SelectedInterestTypeID")。val($(this)).find( 'td:最初のa')。attr( 'id')); $ – Bojan

関連する問題