每次使用组合选择一个项目时,我都会使用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版更新了一些客户端。此特定版本应该引起问题。 我们无法使用其他版本更新所有客户端。
有人会建议如何解决此问题吗?
答案 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>