如何防止输入中出现退格符号?

时间:2018-08-13 08:52:53

标签: angular

我已经在Angular 2中完成了此指令,以防止输入字段中的退格符号小于3:

import {Directive, ElementRef, HostListener, Input} from '@angular/core';

@Directive({
  selector: '[limitTo]'
})
export class RestrictInputDirective {

  @Input() limitTo: number;

  constructor(private el: ElementRef) {
  }

  @HostListener('keydown', ['$event'])
  onKeyDown(evt: KeyboardEvent) {
    let a = (evt.target as HTMLInputElement).value.length;
    if (a <= this.limitTo) {
      evt.preventDefault();
    }
  }
}

但这对我不起作用。

使用:

<input type="text" limitTo="5">

1 个答案:

答案 0 :(得分:1)

您可以使用keyDown.backspace伪事件来防止退格

<?php
// Start the session
session_start();
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "project";

$conn = new mysqli($servername, $username, $password, $dbname);
/*echo*/ $id=$_GET['id'];
$sql = "SELECT * FROM exercises where exercise_id='$id'";
$result = $conn->query($sql); /*Check connection*/
?>

<div id="centered_B" class="header">

<?php
$row = $result->fetch_assoc();
    echo '<h1>' . $row["exercise_id"]. ". " . $row["title"] . '</h1>' . "<br>" . '<p>' . $row["text"] . '</p> <img width="603" height="auto" src="' . $row["image_path"] . '"><br><br>

<form method="post" >
    <input type="radio" name="choice" value= "1" /><img src="' . $row["image_path_A"] . '"/><br>
    <input type="radio" name="choice" value= "2" /><img src="' . $row["image_path_B"] . '"><br>
    <input type="radio" name="choice" value= "3" /><img src="' . $row["image_path_C"] . '"><br>';
echo '</form>';

/*var_dump($id)*/
?>

    <br><br><br><!--- Select difficulty --->

    <p2>Select difficulty level:</p2>

    <form action='' method='post'>
    <select name="choose" id="choose">>
        <option value="1" <?php if($row["difficulty"]=="1") { echo "selected"; } ?> >1</option>
        <option value="2" <?php if($row["difficulty"]=="2") { echo "selected"; } ?> >2</option>
        <option value="3" <?php if($row["difficulty"]=="3") { echo "selected"; } ?> >3</option>
        <option value="4" <?php if($row["difficulty"]=="4") { echo "selected"; } ?> >4</option>
        <option value="5" <?php if($row["difficulty"]=="5") { echo "selected"; } ?> >5</option>
    </select>

    <br><br><br><!--- Button --->

<!--        <button class="buttonSubmit" >Submit</button>-->
        <input type="submit" name="submit" value="Submit">
        <button class="buttonNext" >Next Question</button>
    </form>

</div><!--- end of centered_B div --->



<?php

if (isset($_POST['submit'])) {
    $user_id = $_SESSION['user_id'];
   $user_check_query = "SELECT * FROM users WHERE id='$user_id'";
if(isset($_POST['choice'])){
    if(isset($_POST['choose'])){
        $choice_answer=$_POST['choice'];
        $difficulty=$_POST['choose'];
//      */$user_id = $_SESSION['user_id'];*/
        $query = "INSERT INTO answers (exercise_id_fk, student_id, difficulty_student, choice_answer) VALUES ('$id','$user_id', '$difficulty', '$choice_answer')";
        $sql=mysqli_query($conn,$query);
    }
}
}
?> 

示例:https://stackblitz.com/edit/back-space