如何在javascript中获取Kendo元素的属性

时间:2014-06-23 09:43:36

标签: javascript jquery razor kendo-ui

我在Razor视图页面上有几个Kendo NumericTextBox,并为它们提供了一个事件处理程序:

@Html.Kendo().NumericTextBoxFor(model => model.SignedNumericTextBox1).Step(0.25f).Events(e => e.Change("ChangeSignedNumericTextBox1"))
@Html.Kendo().NumericTextBoxFor(model => model.SignedNumericTextBox2).Step(0.25f).Events(e => e.Change("ChangeSignedNumericTextBox2"))
@Html.Kendo().NumericTextBoxFor(model => model.SignedNumericTextBox3).Step(0.25f).Events(e => e.Change("ChangeSignedNumericTextBox3"))

<script>
function ChangeSignedNumericTextBox1() {
    var val = this.value()
    alert(this.name);
    if (val > 0) {
        $("#SignedNumericTextBox1").kendoNumericTextBox({ format: "+##.##", decimals: 2 });
    }
    else {
        $("#SignedNumericTextBox1").kendoNumericTextBox({ format: "##.##", decimals: 2 });
    }
}

function ChangeSignedNumericTextBox2() {
    var val = this.value()
    alert(this.name);
    if (val > 0) {
        $("#SignedNumericTextBox2").kendoNumericTextBox({ format: "+##.##", decimals: 2 });
    }
    else {
        $("#SignedNumericTextBox2").kendoNumericTextBox({ format: "##.##", decimals: 2 });
    }
}

function ChangeSignedNumericTextBox3() {
    var val = this.value()
    alert(this.name);
    if (val > 0) {
        $("#SignedNumericTextBox3").kendoNumericTextBox({ format: "+##.##", decimals: 2 });
    }
    else {
        $("#SignedNumericTextBox3").kendoNumericTextBox({ format: "##.##", decimals: 2 });
    }
}
</script>

有没有办法在我的JavaScript中引用数字文本框,以便我只需要一个ChangeSignedNumericTextBox函数?

1 个答案:

答案 0 :(得分:0)

这应该有希望帮助:

<script>
  function changeme()
  {

    var myId = '#' + this._form.context.id;
    var val = $(myId).val();

    if (val > 0) {
         $(myId).kendoNumericTextBox({ format: "+##.##", decimals: 2 });
    }
    else {
         $(myId).kendoNumericTextBox({ format: "##.##", decimals: 2 });
    }

  }

</script>