Pracuję aplikację MVC ASP.NET, w której użytkownik musi wypełnić formularz. Jest to pole tekstowe, w którym użytkownik musi wejść, jak długo pracowali w obecnym zatrudnieniu. Jeśli użytkownik wejdzie mniej niż trzy lata, potrzebuję sekcji formularza do poprzedniego zatrudnienia, aby pojawić się. Gdy obciążenia strony ta sekcja jest ukryta z jQuery.

Użytkownik może wprowadzić liczbę między 0 a 99, albo wyzwala się błąd. Z tego powodu nie mogę używać menu rozwijanego, aby to zrobić; Dokonuje więcej sensu użytkownikowi wprowadzenie wartości.

Czy określona wartość pojawiła się w polu Textbox uruchomić zdarzenie jQuery, które ma się wydarzyć? Próbowałem znaleźć rozwiązanie mojego problemu, a mój brak doświadczenia z jQuery naprawdę wpływa na moją zdolność do pracy. Naprawdę mógłbym użyć niektórych wskazówek, ponieważ logicznie ten kod ma sens w mojej głowie i nie wiem, gdzie idę źle.

Model MVC.

    [Required]
    [Range(0, 99)]
    [Display(Name = "Number of Years at Current Employer")]
    public int Buy1YearsAtEmployer { get; set; }

Składnia HTML / Razor:

  <div class="form-group required col-md-4">
       @Html.LabelFor(model => model.Buy1YearsAtEmployer, new { @class = "control-label" })
       @Html.TextBoxFor(model => model.Buy1YearsAtEmployer, new { id = "applicantYearsAtCurrentEmployer", @Value = "", @class = "form-control" })
       @Html.ValidationMessageFor(model => model.Buy1YearsAtEmployer, "Please enter a valid number of years", new { @class = "text-danger" })
  </div>


 <div class="container" id="applicantPreviousWork">
      <h4>Your Previous Employment</h4>
      <!--More code--!>
  </div>

JQuery

    $('#applicantYearsAtCurrentEmployer').focusout(function () {
    if ($(Buy1YearsAtEmployer).val() <= 3) {
        $('#applicantPreviousWork').show();
    }
    else {
        $('#applicantPreviousWork').hide();
    }
});
1
cryan 1 wrzesień 2017, 23:20

2 odpowiedzi

Najlepsza odpowiedź

To będzie działać dobrze. Zmień Buy1YearsAtEmployer do this. Zobacz moje skrzypce

<input id="applicantYearsAtCurrentEmployer">

<div id="applicantPreviousWork" style="display:none;">
Years worked...
</div>

I JS:

 $('#applicantYearsAtCurrentEmployer').focusout(function () {
    if ( $(this).val() <= 3) {
        $('#applicantPreviousWork').show();
    }
    else {
        $('#applicantPreviousWork').hide();
    }
});
0
luxdvie 1 wrzesień 2017, 20:27

Użyj funkcji JQuery Change na polu tekstowym, aby uchwycić wartość. Następnie otwórz okrętkę zgodnie z wartością. W polu Wejście tekstowe, zdarzenie zmień jest zwolnione, gdy zmienia się zmienia się i pole tekstowe.

https://api.jquery.com/change/

$(document).ready(function(){
$('#applicantYearsAtCurrentEmployer').change(function() {
  var currVal = $(this).val();
 //Now put your logic here.
});});
0
Amit Kumar Singh 1 wrzesień 2017, 20:28