Попробуй это. Вы хотите показать раскрывающееся значение в текстовом поле? Этот код будет отображать раскрывающееся значение в текстовом поле при изменении раскрывающегося значения и при нажатии кнопки показать. Я создал функцию showText (), которую вы можете вызывать в любом месте либо по нажатию кнопки показа, либо по изменению выпадающего списка. Вы можете изменить значения выпадающего меню, используя свой php while. Вот пример кода:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form method="POST">
<select name="searchtitle" id="drp_dwn" onchange="showText()">
<option value="one" >One</option>
<option value="Two" >Two</option>
<option value="Three" >Three</option>
</select>
<input type="button" onclick="showText()" class="button" value="Show">
<input type="text" id="textArea" class="product-new-textbox" name="searchtitle" value='' />
</form>
<script>
function showText()
{
$("#textArea").val($("#drp_dwn").val());
}
</script>
Да и нет. Да, можно заставить его казаться на добавление метода к double
. Например:
class MyRichDouble(d: Double) {
def <>(other: Double) = d != other
}
implicit def doubleToSyntax(d: Double) = new MyRichDouble(d)
Этот код добавляет ранее недоступное <>
оператор к любому объекту типа Double
. Пока doubleToSyntax
метод находится в объеме так, чтобы он мог быть вызван без квалификации, следующее будет работать:
3.1415 <> 2.68 // => true
Часть "нет" ответа прибывает из того, что Вы ничего действительно не добавляете к Double
класс. Вместо этого Вы создаете преобразование из Double
к новому типу, который действительно определяет метод, который Вы хотите. Это может быть намного более мощной техникой, чем открытые классы, предлагаемые многими динамическими языками. Это также, оказывается, абсолютно безопасно с точки зрения типов.:-)
Некоторые ограничения необходимо знать:
doubleToSyntax
) абсолютно должно быть в объеме, чтобы метод требуемого внутреннего абонента был доступенИдиоматически, неявные преобразования или помещаются в одноэлементных объектах и импортируются (например. import Predef._
) или в чертах и наследованный (например. class MyStuff extends PredefTrait
).
Пренебрегите в стороне: "инфиксные операторы" в Scala являются на самом деле методами. Нет никакого волшебства, связанного с <>
метод, который позволяет этому быть инфиксом, синтаксический анализатор просто, принимает его тот путь. Можно также использовать "обычные методы" в качестве инфиксных операторов, если Вам нравится. Например, Stream
класс определяет a take
метод, который берет сингл Int
параметр и возвраты новое Stream
. Это может использоваться следующим образом:
val str: Stream[Int] = ...
val subStream = str take 5
str take 5
выражение буквально идентично str.take(5)
.
Эта функция пригодилась для реализации класса, выполняющего оценку погрешности:
object errorEstimation {
class Estimate(val x: Double, val e: Double) {
def + (that: Estimate) =
new Estimate(this.x + that.x, this.e + that.e)
def - (that: Estimate) =
new Estimate(this.x - that.x, this.e + that.e)
def * (that: Estimate) =
new Estimate(this.x * that.x,
this.x.abs*that.e+that.x.abs*this.e+this.e*that.e)
def / (that: Estimate) =
new Estimate(this.x/that.x,
(this.x.abs*that.e+that.x.abs*this.e)/(that.x.abs*(that.x.abs-that.e)))
def +- (e2: Double) =
new Estimate(x,e+e2)
override def toString =
x + " +- " + e
}
implicit def double2estimate(x: Double): Estimate = new Estimate(x,0)
implicit def int2estimate(x: Int): Estimate = new Estimate(x,0)
def main(args: Array[String]) = {
println(((x: Estimate) => x+2*x+3*x*x)(1 +- 0.1))
// 6.0 +- 0.93
println(((x: Estimate) => (((y: Estimate) => y*y + 2)(x+x)))(1 +- 0.1))
// 6.0 +- 0.84
def poly(x: Estimate) = x+2*x+3/(x*x)
println(poly(3.0 +- 0.1))
// 9.33333 +- 0.3242352
println(poly(30271.3 +- 0.0001))
// 90813.9 +- 0.0003
println(((x: Estimate) => poly(x*x))(3 +- 1.0))
// 27.037 +- 20.931
}
}