jquery代码无法正常工作(用于警报)

时间:2010-08-13 05:11:53

标签: jquery jquery-ui

我的jquery代码出了问题。我的代码工作正常,除了IF条件中的警报部分。

    $('#datepicker').datepicker({ onSelect: function(dateStr) {
         var url = 'GetExchangeRate';
         var sellingRateValue;
         var buyingRateValue;
         $('#Duedate').val(dateStr);
         $.post(url, { dateToGet: dateStr },
    function(data) {

         var dr = $('#Dollar').val;
         var br = $('#BuyingRate').val;
         var sr = $('#SellingRate').val;
         if ((dr == null || dr.length < 1) && (br == null || br.length < 1) && (sr == null || sr.length < 1)) {
           alert("Please enter the exchage for today.");
            $('#Dollar').val('');
            $('#BuyingRate').val('');
            $('#SellingRate').val('');
            return false;
        }
        else {
            $('#Dollar').val(data.DollarRate);
            $('#BuyingRate').val(data.SellingRate);
            $('#SellingRate').val(data.BuyingRate);

            //alert(data.CurrentDate);


        }
    }, 'json');
     }
     });

这是代码部分无效。

if ((dr == null || dr.length < 1) && (br == null || br.length < 1) && (sr == null || sr.length < 1)) {
           alert("Please enter the exchage for today.");
            $('#Dollar').val('');
            $('#BuyingRate').val('');
            $('#SellingRate').val('');
            return false;

3 个答案:

答案 0 :(得分:4)

尝试:

 function(data) {

         var dr = $('#Dollar').val();
         var br = $('#BuyingRate').val();
         var sr = $('#SellingRate').val();

最后带()。

答案 1 :(得分:1)

虽然我不完全确定你想要做什么,但逻辑可能有些偏差。您应首先应用Sebastian的修复,并可能重新考虑if语句的条件。

if (     (dr == null || dr.length < 1)
      && (br == null || br.length < 1)
      && (sr == null || sr.length < 1)) {

    alert("Please enter the exchage for today.");
    $('#Dollar').val('');
    $('#BuyingRate').val('');
    $('#SellingRate').val('');
    return false;
}

if的逻辑意味着只有在所有字段都为空时才重置这些字段,这对我来说似乎没有意义。我猜你想说的是,“重置所有这些字段,只要其中任何一个字段都是空的。”

if (     (dr == null || dr.length < 1)
      || (br == null || br.length < 1)
      || (sr == null || sr.length < 1)) {

旁注:

我认为你应该改变你的状况,

if (!dr && !br && !sr) {...} // your original code

if (!dr || !br || !sr) {...} // With my fix

答案 2 :(得分:1)

首先,就像塞巴斯蒂安写的那样,你应该在括号中使用val()

其次,请在if之前尝试此操作,而不是现在拥有的内容:

     var dr = "";
     var br = "";
     var sr = "";

如果现在弹出警报,那么您知道它之前没有弹出,因为并非所有三个drbrsr都设置为空字符串或null。 (所有三个必须为“”或null才能触发if

如果警报仍未弹出,那么您在if声明之外还有其他一些问题。

确保使用Firebug查看变量/代码。