使用带有 js_of_ocaml 的文本区域的值
Use the value of a textarea with js_of_ocaml
我正在尝试将文本区域的值与 js_of_ocaml 一起使用。这是我的源代码:
let matrix () =
let text1 = get_textarea "input_1" in
let btn1 = get_elem "btn_1" in
text1##placeholder <- Js.string "Write your matrix !";
btn1##textContent <- Js.some (Js.string "Calculate");
btn1##onclick <- Dom_html.handler (if Matrix.is_matrix (Js.to_string text1##value)
then (let matrix = Matrix.get_matrix (Js.to_string text1##value) in
fun ev -> (set_matrix_caracteristics (Matrix.nb_lines matrix) (Matrix.nb_columns matrix) (Matrix.determinant matrix) ; Js._false))
else fun ev -> (error_input_matrix() ; Js._false))
我想在矩阵上做一些计算,矩阵是由用户通过带有 html 界面的文本区域编写的。
我认为问题是 text1
的值不会改变,即使我在文本区域中写了一些东西。不管textarea的输入是什么,结果都是一样的
有谁知道如何使用用户写入的值吗?
谢谢!
您的问题是您在定义处理程序函数之前评估 text1##value
,因此在安装处理程序时评估该值,然后永远不会更改。以下应该有效
btn1##onclick <- Dom_html.handler (
fun ev ->
if Matrix.is_matrix (Js.to_string text1##value)
then let matrix = Matrix.get_matrix (Js.to_string text1##value) in
(set_matrix_caracteristics (Matrix.nb_lines matrix) (Matrix.nb_columns matrix) (Matrix.determinant matrix) ; Js._false)
else error_input_matrix() ; Js._false
)
我正在尝试将文本区域的值与 js_of_ocaml 一起使用。这是我的源代码:
let matrix () =
let text1 = get_textarea "input_1" in
let btn1 = get_elem "btn_1" in
text1##placeholder <- Js.string "Write your matrix !";
btn1##textContent <- Js.some (Js.string "Calculate");
btn1##onclick <- Dom_html.handler (if Matrix.is_matrix (Js.to_string text1##value)
then (let matrix = Matrix.get_matrix (Js.to_string text1##value) in
fun ev -> (set_matrix_caracteristics (Matrix.nb_lines matrix) (Matrix.nb_columns matrix) (Matrix.determinant matrix) ; Js._false))
else fun ev -> (error_input_matrix() ; Js._false))
我想在矩阵上做一些计算,矩阵是由用户通过带有 html 界面的文本区域编写的。
我认为问题是 text1
的值不会改变,即使我在文本区域中写了一些东西。不管textarea的输入是什么,结果都是一样的
有谁知道如何使用用户写入的值吗?
谢谢!
您的问题是您在定义处理程序函数之前评估 text1##value
,因此在安装处理程序时评估该值,然后永远不会更改。以下应该有效
btn1##onclick <- Dom_html.handler (
fun ev ->
if Matrix.is_matrix (Js.to_string text1##value)
then let matrix = Matrix.get_matrix (Js.to_string text1##value) in
(set_matrix_caracteristics (Matrix.nb_lines matrix) (Matrix.nb_columns matrix) (Matrix.determinant matrix) ; Js._false)
else error_input_matrix() ; Js._false
)