标签中的事件使用javascript函数间歇性地选择工作

时间:2019-07-18 11:58:57

标签: javascript asp.net-mvc firefox

每次使用组合选择一个项目时,我都会使用javascript执行ajax请求。为此,Select标记将执行Onchange事件。

但是我无法调用间歇运行的js函数。有时值会更改而功能无法执行。

这是每次选择更改时应执行的JS代码段:

$(document).ready(function () {

    $('.tbl select.detalhes').change(function () {
        if ($(this).val() != "") {
            var id = $(this).val();
            AjaxCall(urlPrefix + 'Detalhe.aspx/Ficha', '{ id: ' + id + ' }', function (data) {
                carregarFicha(data);
            });
            $(this).prop('selectedIndex', 0);
        }
    });

源cshtml,我将js插入@section Head

@model IList<Round>
@{
    ViewBag.Title = "Index";
    Layout = "~/Views/Shared/SiteLayout.cshtml";
}
@section Head
{
	<script src="@Url.NonCached("~/Scripts/Index.js")" type="text/javascript"></script>
}

@if (Model != null && Model.Count > 0)
{
    <h2>Rodada</h2>    
    var textoRodadas = @Model.Count > 0 ? "Rodadas encontradas" : "Rodada encontrada";         
    <span class="total-registros"> <strong>@Model.Count</strong> @textoRodadas</span>    
    <table border="0" cellpadding="0" cellspacing="0" class="tbl" id="table-round">
		<thead>
			<tr>
				<th scope="col" class="ord">Rodada</th>
				<th scope="col" class="ord">Data Inicial</th>
				<th scope="col" class="ord">Data Final</th>
				<th scope="col" width="150" class="ord tits-th col-escura ">Regras</th>				
			</tr>
		</thead>
		<tbody>
		
        @for (int i = 0; i < Model.Count; i++)
        {
		
			var item = Model[i];
            var classe = "class=\"" + item.Tipo.ToString();
            if (item.Protegido == SimNao.Sim)
            {
                classe += " protegido ";
            }
            classe += i % 2 == 0 ? "\"" : " odd\"";

            var permitirCriarRegraComLances = !(item.Tipo == App.AdjudicacaoInicial);
                
            <tr @Html.Raw(classe) >
				<td class="tbl-nomeTipo-round") ">
					@Html.Hidden("id", item.Id)
					<span class="click-round tbl-nome-round">@item.Nome</span>
				</td>
				<td class="click-round tbl-data-round">
					@item.DataInicio.ToString("dd/MM/yyyy")
				</td>
				<td class="click-round tbl-data-round">
					@item.DataFim.ToString("dd/MM/yyyy")
				</td>
				<td class="col-escura">
				  <div  class="grid-12-12 form">
				  @{
						var regras = item.Regras.OrderBy(t => t.Nome).ToArray();
				  }
				  <span class="txt-maior ">@regras.Length</span>
				  @if (regras.Length > 0)
				  {
					<select class="form-txt regras" id="reg1" onchange="mudou(this)">
						<option value="" >Selecione</option>
					  @foreach (var reg in regras)
					  {
							<option value="@reg.Id">@reg.Nome</option>   
					  }
					</select>
				  }
					
				  </div>					
				</td>
			</tr>            
        }
		</tbody>
	</table>
}
else
{
	<span>Sem resultados</span>
}

该应用程序仅适用于Firefox,并且该代码可以正常工作,直到该公司使用60.7.0版更新了一些客户端。此特定版本应该引起问题。 我们无法使用其他版本更新所有客户端。

有人会建议如何解决此问题吗?

1 个答案:

答案 0 :(得分:0)

尝试使用以下两种方法:

方法1:

试试这个-

$('select').on('change', function() {
    //Add your logic
  console.log( this.value );
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<select>
    <option value="1">Test 1</option>
    <option value="2">Test 2</option>
</select>

方法:2

function getval(sel)
{
    //Add your logic
  console.log( sel.value );
}
<select onchange="getval(this);">
    <option value="1">Test 1</option>
    <option value="2">Test 2</option>
</select>