Я пытаюсь работать с представлением, которое имеет модальное окно, а внутри модели есть текстовое поле.
Я пытаюсь сделать следующее: когда я ввожу значение в текстовое поле, он должен проверять и сравнивать, если введенное число больше / меньше значения из базы данных (функция check ()) И одновременно пытается ограничить количество текстовых полей вводит до 3 раз (функция CountClicks ()).
Я использую ASP.NET MVC с Entity Framework в Visual Studio.
Функция Javascript check () не работает, но countClicks () работает
Мой код контроллера:
public ActionResult Sample()
{
return View(g.Sample_bargain.ToList());
}
[HttpPost]
public ActionResult Sample(FormCollection f)
{
Sample_bargain s = new Sample_bargain();
var cs = from d in g.Sample_bargain
where s.Prod_ID == 20
select s.Bargain_amt;
ViewBag.bargain = cs;
int Bargain = Convert.ToInt32(f["bargain"]);
return RedirectToAction("Cart");
}
Мой код просмотра выглядит следующим образом:
<script type = "text/javascript">
var ClickCount = 0;
function countClicks() {
var clickLimit = 3; //Max number of clicks
if (ClickCount >= clickLimit) {
alert("You can only click this button " + clickLimit + " times.");
return false;
}
else {
ClickCount++;
return true;
}
}
function check() {
var bargtextbox = document.getElementById("userbarg").value;
if (@ViewBag.bargain > bargtextbox) {
alert("Amount too low. Try a better bargain.");
}
else {
alert("Amount High");
}
}
</script>
<input type = "number" value = "0" id = "userbarg" class = "abc" name = "userbarg" />
<button type = "button" class = "barg" value = "" name = "clickOnce" onclick = "check(); countClicks(); "> SUBMIT </button>
countClick () находится внутри представления. Первая функция поверх функции check ()
Вы хотите сказать, что check() не работает? Можете ли вы проверить стоимость внутри ViewBag.bargain и что такое userbarg?
Да, check () не работает. Даже countClick () работает, только если не назначен вместе с функцией check (). userbarg - это идентификатор текстового поля, значение которого я хочу сравнить со значением из таблицы в базе данных.
Попробуйте с ViewBag.bargain = cs.FirstOrDefault();. А код, которым вы поделились, является Cart или Sample?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Если вы когда-нибудь откроете devtool вашего браузера, например, F12 на chrome, держу пари, вы увидите некоторую ошибку javascript.
Согласно коду вашего контроллера, ViewBag.bargain находится в действии POST, но вы никогда не сможете отправить что-то обратно на сервер, поскольку ViewBag.bargain еще ничего не назначено.
Попробуйте переместить первые пять строк действия POST Sample () в строку GET (без атрибута метода http), чтобы ваш javascript не генерировал ошибок.
где у вас функция
click()?