使用.trigger()时未触发JavaScript更改事件
我编写了一个JavaScript使用.trigger()时未触发JavaScript更改事件,javascript,jquery,Javascript,Jquery,我编写了一个JavaScript.change()事件,因此当单选按钮选择被更改时,会发生不同的事情,当我手动进行此更改时,会触发事件,一切正常。不起作用的是,当我调用单选按钮上的.trigger(“change”)命令时,事件似乎没有触发,因为.change()调用中没有任何代码运行。通过JavaScript代码触发事件的正确方式是什么 下面是我用来进行事件调用的代码: $("input[name=TimespanEntryMode]").trigger("change"); 下面是应在更改
.change()
事件,因此当单选按钮选择被更改时,会发生不同的事情,当我手动进行此更改时,会触发事件,一切正常。不起作用的是,当我调用单选按钮上的.trigger(“change”)
命令时,事件似乎没有触发,因为.change()
调用中没有任何代码运行。通过JavaScript代码触发事件的正确方式是什么
下面是我用来进行事件调用的代码:
$("input[name=TimespanEntryMode]").trigger("change");
下面是应在更改事件上运行的代码:
$("input[name=TimespanEntryMode]").change(function ()
{
$("#TimeEntryStartTime").toggleClass("hidden");
$("#TimeEntryEndTime").toggleClass("hidden");
$("#TimeEntryDuration").toggleClass("hidden");
$(".timeEntryBox").val("");
});
应HTML的要求:
<li>
<label>Time Entry Mode:</label>
<label class="normal">
<input type="radio" id="TimeEntryModeTime" name="TimespanEntryMode" value="true" checked="checked" />Time
</label>
<label class="normal">
<input type="radio" id="TimeEntryModeDuration" name="TimespanEntryMode" value="false" />Duration
</label>
</li>
<li id="TimeEntryStartTime">
<label>Start Time:</label>
@Html.DropDownListFor(m => m.SelectedStartDay, Model.DaysOfTheWeek, new { @class = "dayOfTheWeekSelector", @id = "SelectedStartDay" })
@Html.EditorFor(m => m.StartTime, new { htmlAttributes = new { @class = "timeEntryBox", @id = "StartTimeEntryBox", @readonly = "readonly" } })
</li>
<li id="TimeEntryEndTime">
<label>End Time:</label>
@Html.DropDownListFor(m => m.SelectedEndDay, Model.DaysOfTheWeek, new { @class = "dayOfTheWeekSelector", @id = "SelectedEndDay" })
@Html.EditorFor(m => m.EndTime, new { htmlAttributes = new { @class = "timeEntryBox", @id = "EndTimeEntryBox", @readonly = "readonly" } })
</li>
<li id="TimeEntryDuration" class="hidden">
<label>Duration:</label>
@Html.DropDownListFor(m => m.SelectedStartDay, Model.DaysOfTheWeek, new { @class = "dayOfTheWeekSelector", @id = "SelectedDurationStartDay", @Name = "SelectedDurationStartDay" })
H:@Html.DropDownListFor(m => m.SelectedDurationHour, Model.DurationHours, new { @class = "durationTime", @id = "DurationHour" })
M:@Html.DropDownListFor(m => m.SelectedDurationMinute, Model.DurationMinutes, new { @class = "durationTime", @id = "DurationMinute" })
</li>
时间输入模式:
时间
期间
开始时间:
@Html.DropDownListFor(m=>m.SelectedStartDay,Model.DaysOfTheWeek,new{@class=“daysofweekselector”,@id=“SelectedStartDay”})
@EditorFor(m=>m.StartTime,new{htmlAttributes=new{@class=“timeEntryBox”,@id=“StartTimeEntryBox”,@readonly=“readonly”})
结束时间:
@Html.DropDownListFor(m=>m.selectedededDay,Model.DaysOfTheWeek,new{@class=“daysofweekselector”,@id=“selectedededDay”})
@EditorFor(m=>m.EndTime,new{htmlAttributes=new{@class=“timeEntryBox”、@id=“EndTimeEntryBox”、@readonly=“readonly”}})
您必须指定一个要触发更改的收音机:
$("input[name=TimespanEntryMode]:eq(index_here)").trigger("change");
____________________________________^^^^^^^^^^
希望这有帮助
$(“#切换”)。打开('click',function(){
$(“输入[name=TimespanEntryMode]:eq(0)”).trigger(“更改”);
});
$(“输入[name=TimespanEntryMode]”)。更改(函数(){
警报(“切换”);
});代码>
时间输入模式:
时间
期间
切换
您必须指定一个要触发更改的收音机:
$("input[name=TimespanEntryMode]:eq(index_here)").trigger("change");
____________________________________^^^^^^^^^^
希望这有帮助
$(“#切换”)。打开('click',function(){
$(“输入[name=TimespanEntryMode]:eq(0)”).trigger(“更改”);
});
$(“输入[name=TimespanEntryMode]”)。更改(函数(){
警报(“切换”);
});代码>
时间输入模式:
时间
期间
切换
您也可以共享HTML吗?看起来,由于有多个单选按钮,您可能需要以不同的方式执行此操作。在浏览器控制台中,过去的$(“输入[name=timespan entrymode]”)是否选择了所需的input
元素?@PraveenKumar根据请求添加了HTML,实际上有两个按钮,每个按钮具有唯一的ID,但名称相同。当我在浏览器中来回单击时,.change()
事件触发良好。@Matthew何时以及如何调用触发器()
?触发更改事件时,每个单选按钮都会发生一次。第一个事件切换类,第二个事件再次切换类,使其看起来好像什么都没有发生。您也可以共享HTML吗?看起来,由于有多个单选按钮,您可能需要以不同的方式执行此操作。在浏览器控制台中,过去的$(“输入[name=timespan entrymode]”)是否选择了所需的input
元素?@PraveenKumar根据请求添加了HTML,实际上有两个按钮,每个按钮具有唯一的ID,但名称相同。当我在浏览器中来回单击时,.change()
事件触发良好。@Matthew何时以及如何调用触发器()
?触发更改事件时,每个单选按钮都会发生一次。第一个事件切换类,第二个事件再次切换类,使其看起来好像什么都没有发生。