在输入字段中输入内容后,在选择框中缩进文本

时间:2018-10-30 22:25:02

标签: javascript html css

我已经知道dir="rtl"将使文本位于右侧;但是,我希望在input元素中写入某些内容时有条件地发生这种情况。

我一直在考虑禁用dir="rtl",直到在input元素中输入了一些内容,然后才启用rtl。但是,这样做的问题在于更改所隐含的“刷新页面”要求。

这是带有文本的简单下拉框。

  <Select class="textToRight" dir="rtl">
      <div class = "toRight">
      <option class="this1"> TEXT1</option>
      <option class="this2"> TEXT2</option>
      <option class="this3"> TEXT3</option>
      </div>
    </select>
    <input class ="dontChange" placeholder="dontChange"></input>
    <input class ="change" placeholder="change"></input>

2 个答案:

答案 0 :(得分:0)

要回答您的问题,是的,您可以通过附加事件处理程序来修改一个元素的属性,同时触发另一个元素的事件。

根据您的情况,您可以将其附加到focusinfocusout事件中。

var selectBox = document.querySelector(".textToRight");
var changeInput = document.querySelector(".change");

changeInput.addEventListener("focusin", function() {
  selectBox.dir = "rtl";
});
changeInput.addEventListener("focusout", function() {
  selectBox.dir = "ltr";
});
<select class="textToRight">
  <div class="toRight">
    <option class="this1"> TEXT1</option>
    <option class="this2"> TEXT2</option>
    <option class="this3"> TEXT3</option>
  </div>
</select>
<input class="dontChange" placeholder="dontChange"></input>
<input class="change" placeholder="change"></input>

但正如 David Thomas 所说,在div中包含selectnot valid HTML

此外,我认为您正在滥用dir属性,该属性用于指示元素文本的方向性(例如英语和阿拉伯语)。

答案 1 :(得分:0)

这是我对onkeyup()的了解。但是我仍然遇到麻烦。

JS

    enter code here
import java.util.*;
import java.math.*;
public class Main
{
    public static void main(String[] args) {
        Scanner s=new Scanner(System.in);
        long l=s.nextLong();
        BigInteger b=new BigInteger(String.valueOf(l));
        BigInteger p=b.nextProbablePrime();
        System.out.println(p);
    }
}

我不知道如何制作代码段,但通过对其进行测试,它可以工作。但是,我现在遇到的问题是我无法还原它。那我可以对文本的长度做个条件吗?如果== 0,则执行ltr .. else dir = rtl。